4
我在WP应用程序调用HttpClient
post方法有问题。PostAsync
总是挂起,并没有给出任何回应。当我从WPF应用程序尝试它时,相同的代码工作。下面是我在做什么:Windows手机HttpClient的PostAsync挂起没有反应
服务器Web API代码
public class GameController : ApiController
{
[HttpPost]
public GameDto CreateGame(GameDto gameDto)
{
try
{
GameManager bl = new GameManager();
gameDto = bl.CreateGame(gameDto);
return gameDto;
}
catch (Exception)
{
throw;
}
}
}
客户端WP8代码类库调用
private async void Button_Click(object sender, RoutedEventArgs e)
{
try
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:59580");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
GameDto newGame = new GameDto();
newGame.CreatedBy = 1;
newGame.Name = txtGameName.Text;
newGame.GameTypeId = (int)cmbGameType.SelectedValue;
MediaTypeFormatter jsonFormatter = new JsonMediaTypeFormatter();
var response = await client.PostAsync<GameDto>("api/Game/CreateGame", newGame, jsonFormatter);
response.EnsureSuccessStatusCode(); // Throw on error code.
var userDto = await response.Content.ReadAsAsync<GameDto>();
//_products.CopyFrom(products);
MessageBox.Show(userDto.Id.ToString());
}
catch (Exception)
{
throw;
}
}
代码块在哪里?顺便说一句,为了重新抛出异常而捕捉异常是毫无意义的。 –
另外'http:// localhost'是电话/模拟器本身 - 这几乎不是你想要做的。 –
response.EnsureSuccessStatusCode()上的代码块; 。异常处理尚未完成。 Http:\\ localhost是虚拟的,我使用了不同的WebAPI URL。 –