я с помощью HttpClient отправить запрос поста на локальном сервере (питание на лампе или MAMP, попробовал оба), но не могу получить ответ, всегда получает «Задание отменено исключение» с помощью следующего кодаXamarin HttpClient работает странно
try
{
using (HttpClient client = new HttpClient())
{
client.Timeout = new TimeSpan(0, 0, 10);
var sendContent = new StringContent(serialized);
using (HttpResponseMessage response = await client.PostAsync(url.ToString(), sendContent))
{
if (response.StatusCode != HttpStatusCode.OK)
return MakeError("Bad status: " + response.StatusCode.ToString());
using (HttpContent content = response.Content)
{
string str = await content.ReadAsStringAsync();
if (str == null)
return MakeError("Got null answer");
App.Log("Response: " + str);
return str;
}
}
}
}
catch (Exception e)
{
App.Log("There is something bad with request: " + serialized + " the error was " + e.Message + " url = " + url.ToString());
return MakeError("Timed out");
}
Правильный URL-адрес, если я пытаюсь выполнить этот код на C# Console Application, я могу получить ответ (но не с Xamarin, Android и iOS, на устройстве и эмуляторах).
Я также пытался обнюхать пакеты HTTP, и я увидел, что ответ был отправлен моим локальным сервером, но Xamarin не справился с этим правильным способом. НО, если заменить url с доменом (например, http://stackoverflow.com), я могу получить ответ.
После HTTP ответ заголовки:
- Подключение → закрытия (поддержания активности не работает тоже)
- Content-Length → 951
- Content-Type → приложение/JSon
- Дата → чт, 16 июня 2016 18:11:40 GMT
- Сервер → Apache
- X-Powered-By → PHP/5.5.14
Любые предложения?
какой конкретный адрес вы используете? Имейте в виду, что если вы используете это эмулятор/симулятор Android/iOS, у него есть отдельный IP-адрес с вашего локального ПК и он не может использовать localhost для общения с сервером. Он также не сможет разрешить локальный URL-адрес. – Jason