【问题标题】:GET request to https - NotFound. wp7对 https 的 GET 请求 - 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 模拟器。 =\

【问题讨论】:

    标签: windows-phone-7 https get-request


    【解决方案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 的内容
    猜你喜欢
    • 2018-03-25
    • 2014-08-22
    • 2013-02-28
    • 2012-07-07
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多