首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebRequest不工作

WebRequest不工作
EN

Stack Overflow用户
提问于 2013-10-03 15:36:48
回答 1查看 1.8K关注 0票数 3

以下代码返回WinForms和Windows 8应用程序中的一个错误。

代码语言:javascript
复制
    var jsonData = "jsonStringGoesHere";
    var uri = new Uri("urlGoesHere");
    var webRequest = (HttpWebRequest)WebRequest.Create(uri);
    webRequest.Method = "POST";
    webRequest.ContentType = "application/json";
    webRequest.ContentLength = jsonData.Length;
    webRequest.BeginGetRequestStream(ar =>
    {
        try
        {
            using (var os = webRequest.EndGetRequestStream(ar))
            {
                var postData = Encoding.UTF8.GetBytes(jsonData);
                os.Write(postData, 0, postData.Length);
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex);
        }

        webRequest.BeginGetResponse(
            ar2 =>
            {
                try
                {
                    using (var response = webRequest.EndGetResponse(ar2))
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var received = reader.ReadToEnd();
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex);
                }
            }, null);
    }, null);

Error In WinForms:[System.Net.WebException] = {"The remote server returned an error: (400) Bad Request."}

在WP8 The remote server returned an error: NotFound.

WCF服务运行良好,因为我已经让它们在Fiddler和其他类型的应用程序(如Android/iPhone )中工作。

为什么这个不行?

EN

回答 1

Stack Overflow用户

发布于 2013-10-03 17:05:04

如果我没记错的话,我想我遇到了类似的事情。我以为这和ContentLength有关,但我真的不记得了。

下面是我最终使用的代码。不确定是否有用。

代码语言:javascript
复制
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/json";
string json = BuildJSON(TestConvert(tests));
var enc = new UTF8Encoding(false);
request.ContentLength = enc.GetByteCount(json);
using (StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(), enc))
{
    requestWriter.Write(json);
    requestWriter.Close();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19163319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档