【问题标题】:HttpWebRequest GetRequestStream timeout on Xamarin Android C#Xamarin Android C#上的HttpWebRequest GetRequestStream超时
【发布时间】:2016-03-18 21:23:34
【问题描述】:

以下代码完美运行,并在 Wpf 测试应用程序中立即返回数据,但在 Xamarin Android 中的 request.GetRequestStream() 上挂起:

var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = @"application/json; charset=utf-8";
request.Accept = @"application/json; charset=utf-8";

string postData = "{}";

using (StreamWriter sw = new StreamWriter(request.GetRequestStream()))
    sw.Write(postData);

var response = request.GetResponse();

using (var sw = new StreamReader(response.GetResponseStream()))
{
    var result = sw.ReadToEnd();
}

应用之间没有代码更改,复制和粘贴。有什么想法吗?

编辑:我确实有另一段代码使用 ChannelFactory 连接到不同的 wcf 服务。该代码有效并将数据返回到应用程序。此 url 用于托管 RESTful/JSON 合同的服务。已检查 Internet 权限。

【问题讨论】:

  • 您在此期间解决了问题吗?

标签: c# android json post xamarin


【解决方案1】:

确保您处理您的响应,否则在您可能开始在 .NET 代码中排队之前只需要几个请求。

// **snip**
using (var response = request.GetResponse())
{
    using (var sw = new StreamReader(response.GetResponseStream()))
    {
        var result = sw.ReadToEnd();
    }
}
// **snip**

【讨论】:

  • 他说 GetRequestStream 挂起,而不是响应
  • 没错,我的陈述应该是评论,而不是答案。
  • 我会记住处置的。我主要只是想看看它的工作。我添加了一条编辑评论,它确实以其他方式在互联网上工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 1970-01-01
  • 2016-10-18
  • 2018-01-12
  • 1970-01-01
  • 2011-03-21
相关资源
最近更新 更多