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

问题:

  • 这是我的代码造成的还是.NET中的错误
  • 如果是我的错,我该怎么解决
    我想了想,发现我不需要使用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这不是问题,在第一条评论下面划线。。