C# windowsmobile中的UWP获取http301
我有这个网址:C# windowsmobile中的UWP获取http301,c#,uri,uwp,C#,Uri,Uwp,我有这个网址: var url = "http://10.0.0.68/SET STB MEDIA CTRL {\"type\":\"tv\",\"action\":\"start query status\"}"; var newUri = new Uri(url); 此URI的绝对路径为(从newUri): 我安装了fiddler,当我进入浏览器时,此url: "http://10.0.0.68/SET STB MEDIA CTRL {"type":"tv","action":"start
var url = "http://10.0.0.68/SET STB MEDIA CTRL {\"type\":\"tv\",\"action\":\"start query status\"}";
var newUri = new Uri(url);
此URI的绝对路径为(从newUri):
我安装了fiddler,当我进入浏览器时,此url:
"http://10.0.0.68/SET STB MEDIA CTRL {"type":"tv","action":"start query status"}"
"http://10.0.0.68/SET%20STB%20MEDIA%20CTRL%20%7B%22type%22%3A%22tv%22%2C%22action%22%3A%22start%20query%20status%22%7D"
我可以看到,它已转换为此url:
"http://10.0.0.68/SET STB MEDIA CTRL {"type":"tv","action":"start query status"}"
"http://10.0.0.68/SET%20STB%20MEDIA%20CTRL%20%7B%22type%22%3A%22tv%22%2C%22action%22%3A%22start%20query%20status%22%7D"
当我在Windows或mobile phone emulator上运行应用程序时,一切都正常,但当在Windows mobile上运行时-出现错误(301),以及当我试图在Chrome/Firefox中打开绝对路径时-出现相同的错误(301)
看起来,当在手机上运行时,字符串url被错误地转换,正如您所看到的,绝对url和来自chrome/firefox的url之间存在差异。问题是,此字符:“未转换为'3A'
正如我已经写的,我只有在手机上才有这个问题
var client = new HttpClient();
var url = "http://10.0.0.68/SET STB MEDIA CTRL {\"type\":\"tv\",\"action\":\"start query status\"}";
var uri = new Uri (url); //Just for debug
var response = await client.GetAsync(url);
var result = await response.Content.ReadAsStringAsync();
无论我是否使用HttpClient或WebView控件-在Windows Mobile上-仍然是相同的错误-301
问题:
我想了想,发现我不需要使用HttpClient,我根据微软教程创建了socketclient 我通过此客户端模拟web浏览器,但只发送短请求:
var stringToSend =
"GET /GET%20NOWORNEXT%20EPG%20%7B%20%22count%22%20%3A%20%2230%22%2C%20%22group%22%20%3A%20%225%22%2C%20%22epgNowOrNextFlag%22%20%3A%20%221%22%2C%20%22startIdx%22%20%3A%20%220%22%7D HTTP/1.1"
当我从PC使用I debug时,回答是正确的:
"HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\nDate: Fri, 08 Jul 2016 14:20:31 GMT\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n200 {\"group\":5,\"count\":30,\"data\": etc.... "
但Windows Mobile phone的结果是:
"HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\nDate: Fri, 08 Jul 2016 15:42:01 GMT\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n301"
所以答案还是301
不可能 好吧,问题解决了!:)
它与Windows Mobile等没有任何关系。。。问题是,我必须第一次,当连接到设备时,通过webView等打开他的IP地址f.e。。然后我的IP暂时存储在设备中,并愿意与我通信。。在PC上,它正在工作,因为我正在调试请求等
我在设备上运行logcat并检查通信时发现了它 好吧,问题解决了!:)
它与Windows Mobile等没有任何关系。。。问题是,我必须第一次,当连接到设备时,通过webView等打开他的IP地址f.e。。然后我的IP暂时存储在设备中,并愿意与我通信。。在PC上,它正在工作,因为我正在调试请求等
我在设备上运行logcat并检查通信时发现了它 如果您的web跳转到其他站点,并且可以在HttpWebRequest中使用
AllowAutoRedirect=true
。获取标题并获取URL这不是问题,请查看第一条注释下划线。如果您的web跳转到其他站点,并且可以在HttpWebRequest中使用AllowAutoRedirect=true
。获取标题并获取URL这不是问题,在第一条评论下面划线。。