Я хотел бы сделать простой Http-запрос с использованием Webclient:
public string PostRequest(object json, string contentType, string server)
{
try
{
var request = (HttpWebRequest)WebRequest.Create(server);
request.ContentType = contentType;
request.Method = "POST";
request.Timeout = 10000;
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(JsonConvert.SerializeObject(json));
}
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
return streamReader.ReadToEnd();
}
}
catch (Exception e)
{
throw e;
}
}
Проблема в том, что часть request.GetRequestStream () никогда не возвращается и всегда будет иметь тайм-аут (с значениями по умолчанию 100 и10сек тоже).Я использую Samsung Xcover 4 с Android 7 и более поздней версии Android 8.1.Строка сервера отлично работает при копировании в мой стандартный браузер на ПК. На самом браузере устройства она не работает (тайм-аут).ContentType - это «application / json».
Есть ли что-то, что я могу сделать, чтобы решить эту проблему, или есть другой способ отправить httprequests в xamarin, которые не сломаны?
сам серверработает, и я могу пинговать его с моего устройства:
public int PingHost(string nameOrAddress)
{
int pingCount = 0;
Ping pinger = null;
for (int i = 0; i < 4; i++)
{
try
{
pinger = new Ping();
PingReply reply = pinger.Send(nameOrAddress);
pingCount += reply.Status == IPStatus.Success ? 1:0;
}
catch (Exception){ pingCount = - 1; }
finally
{
pinger?.Dispose();
}
if (pingCount == -1) return -1;
}
return pingCount;
}
спасибо за ваше время.