对 https 的 GET 请求 - NotFound。 wp7

Posted

技术标签:

【中文标题】对 https 的 GET 请求 - NotFound。 wp7【英文标题】:GET request to https - NotFound. wp7 【发布时间】:2012-08-09 18:56:39 【问题描述】:

这是我第一次为 wp7 编写代码,但我遇到了一些麻烦。当我声明 token_req = "http://api.server.com/oauth/token" 没问题,但是当我声明 *https 时,它无法连接,所以我得到“远程服务器返回错误:NotFound。”线路错误

WebResponse 响应 = (HttpWebResponse)request.EndGetResponse(result);

const string results
 private void button1_Click(object sender, RoutedEventArgs e)
        
            string token_req = "https://api.server.com/oauth/token";
            string client_id = "...";
            string client_secret = "...";
            string username = Field_Login.Text;
            string password = Field_Password.Password;
            string token_req_param = "grant_type=password&client_id=" + client_id + "&client_secret=" + client_secret + "&username=" + username + "&password=" + password;



            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(token_req+"?"+token_req_param);

            request.BeginGetResponse(GetCallback, request);
        

        void GetCallback(IAsyncResult result)
        
            WebRequest request = (HttpWebRequest)result.AsyncState; 
            WebResponse response = (HttpWebResponse)request.EndGetResponse(result);
            using (StreamReader httpwebStreamReader = new StreamReader(response.GetResponseStream()))
            
                results = httpwebStreamReader.ReadToEnd();

            
            response.Close();

        

此外,我无法使用 IE 连接到此 url,而我使用 wp7 模拟器。 =\

【问题讨论】:

【参考方案1】:

您是否尝试使用自签名证书?

如果是这样,那么您必须在手机上安装证书,这只能通过将 WebBrowserTask 指向证书的远程 url 来完成。这很糟糕,但这是唯一的方法。

【讨论】:

您也可以通过电子邮件将证书发送给自己。 不是自签名的 =\ 而且我没有手机 - 只有模拟器【参考方案2】:

Error Not Found 是一个通用的 WCF 错误消息,最好的办法是使用 Fiddler,尽管根据我的经验,你还没有设置 HTTPS 来处理你的服务,如果你想设置 HTTPS 连接,你需要更多的魔法,你可以从

https://github.com/geersch/WcfOverHttps

【讨论】:

你还没有设置 HTTPS 来处理你的服务这是什么意思?如果我声明 https://twitter.com 而不是我的 api 服务器 - 它可以工作 =\ 我看到,这个 api 服务器也有 http 地址,但是 http:/ /api.server.com/oauth/token/ 也不起作用。 基本上我的意思是您的托管 WCF 服务的 IIS 服务器可能未设置为仅接收 HTTPS 连接 HTTP 连接(默认)如果您的 WCF 服务需要一些证书等工作想让 HTTPS 工作。 twitter... 起作用的原因是因为他们已经做出了改变。如果你想设置 HTTPS,我认为你需要阅读更多关于 WCF 服务和 IIS 的内容

以上是关于对 https 的 GET 请求 - NotFound。 wp7的主要内容,如果未能解决你的问题,请参考以下文章

HttpComponents 发送post get 请求

python实现http get请求

发出 JSON RPC API 的 GET 请求而不是 POST 请求

Chrome:CORS HTTPS 请求的 GET 请求已取消

https请求的post接口对数据的大小有限制吗

ios开发之oc-网络请求(get)和jison解析