我尝试使用我的Windows手机在网络服务器上发出请求,但我无法工作。
我有这个代码可以在我的电脑上运行
var client = new WebClient
{
BaseAddress = "https://xxx.xxx-xxx.com/"
};
var values = new NameValueCollection
{
{"wrap_name", userName},
{"wrap_password", password},
{"wrap_scope", scope}
};
// WebClient takes care of URL Encoding
var responseBytes = client.UploadValues("issue/wrap", "POST", values);
我知道windows.phone上没有client.UploadValues。所以我在我的wp
上制作了这段代码 var email = "xxx@xxx.org";
var password = "xxx";
var data = "wrap_name=" + email + "&wrap_password=" + password + "&wrap_scope=http://xxx.com/";
var url = "https://xxx.xxx-xxx.com/issue/wrap";
var wc = new WebClient {
//BaseAddress = "https://login.solar-inverter.com/"
};
var URI = new Uri(url);
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc__UploadStringCompleted);
wc.UploadStringAsync(URI, "POST", data);
我使用小提琴手,我得到了这个
任何人都可以帮助我
提前致谢
答案 0 :(得分:1)
Content-Type
请求标头,其值为application/x-www-form-urlencoded
您可以使用Fiddler的比较会话功能来比较工作和非工作请求,并调整非工作请求以完全匹配工作请求。
答案 1 :(得分:0)
好的,我找到了解决方案
我必须检查所有响应头。所以我看到接受编码是“身份”。我把它改为“*”。
以下是解释其工作原理的链接http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
在我的情况下,响应是在gzip中。我使用SharpGis作为webclient。这是nuget路径https://nuget.org/packages/SharpGIS.GZipWebClient 使用SharpGIS,您不再需要设置标题