来自C#的Appharbor JustOneDB https请求收到400个错误

来自C#的Appharbor JustOneDB https请求收到400个错误,c#,https,httpwebrequest,appharbor,justonedb,C#,Https,Httpwebrequest,Appharbor,Justonedb,我正在尝试使用https访问JustOneDB,如果我使用curl实用程序,它就会工作。但它不是从C#开始工作的。 我收到(400)个错误的请求 我四处搜索,禁用了安全系统,但它仍然不起作用。有什么想法吗? 有人用rest和JustOneDB做过这个吗 这适用于所有其他示例: curl-k-XGET'https://username:password@77.92.68.105:31415/justonedb/database/database name' 这不起作用:我模拟了字符串以删除我的密码

我正在尝试使用https访问JustOneDB,如果我使用curl实用程序,它就会工作。但它不是从C#开始工作的。 我收到(400)个错误的请求

我四处搜索,禁用了安全系统,但它仍然不起作用。有什么想法吗? 有人用rest和JustOneDB做过这个吗

这适用于所有其他示例:

curl-k-XGET'https://username:password@77.92.68.105:31415/justonedb/database/database name'

这不起作用:我模拟了字符串以删除我的密码

   public ActionResult JustOneDb()
    {
        ///////////
        HttpWebRequest request = null;
        HttpWebResponse response = null;
        try
        {

            String Xml;
            //curl -k -XGET 'https://zn0lvkpdhdxb70l2_DUMMY_urshn5e7i41lb3fiwuh@77.92.68.105:31415/justonedb/database/n10lvkpdhdxei0l2uja'
            string url = @"https://zn0lvkpdhdxb70_DUMMY_urshn5e7i41lb3fiwuh@77.92.68.105:31415/justonedb/database/n10lvkpdhdxei0l2uja";

            request = (HttpWebRequest)WebRequest.Create(url);

            request.Method = "GET";

            request.Credentials = CredentialCache.DefaultCredentials;

            // Ignore Certificate validation failures (aka untrusted certificate + certificate chains)
            ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true); 


            // Get response 
            using (response = (HttpWebResponse)request.GetResponse())
            {
                // Get the response stream 
                StreamReader reader = new StreamReader(response.GetResponseStream());
                Xml = reader.ReadToEnd();
            }
            return Content(Xml);
        }
        catch (Exception ee)
        {
            return Content(ee.ToString());

        }
        //////////////

        ViewBag.fn = "*.xml";
        return View();
    }
结果:

System.Net.WebException: The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse() 
at Mvc3Razor.Controllers.MyXmlController.JustOneDb() ...
短暂性脑缺血发作
FxM:{< /p> < p>而不是在URL中传递用户名密码,您应该用“用户名”和“密码”创建正确的凭据。您可能还想考虑使用类似于“原始<代码> WebRequest < /代码> .< /p> < p>之类的东西,而不是在URL中传递用户名密码,您应该创建正确的凭据。“用户名”和“密码”"您可能还想考虑使用类似于“原始<代码> WebRequest < /COD> >

< p>与证书不匹配的方法,该证书已被修复。它仍然是自签名的,但现在主机名匹配。我们将很快更改为使用完全签名的证书,但同时请让我知道它是否只适用于T。自签名覆盖。

与已修复的证书不匹配。它仍然是自签名的,但现在主机名匹配。我们将很快更改为使用完全签名的证书,但同时请让我知道它是否仅适用于自签名覆盖。

好的,我复制了代码,问题是在HttpWebRequest库中,没有在原始请求中添加身份验证标头。解决方案是手动插入标头,因此如果在“request.Method=“GET”行之后添加以下两行(并从URL字符串中删除用户名/密码):


它应该可以正常工作。

好的,我复制了代码,问题是HttpWebRequest库没有在原始请求中添加身份验证标头。解决方案是手动插入标头,因此如果在'request.Method=“GET”行之后添加以下两行(并从URL字符串中删除用户名/密码):


它应该可以正常工作。

RestSharp也不起作用。我认为它与证书有关。其他https网站可以工作。而且curl也可以工作。我真的想对JustOneDb进行Rest,因为同一个应用程序有Perl peace。谢谢。好的,我会与JustOneDb的人联系。RestSharp也不起作用。我认为它有点不起作用o使用证书。其他https站点工作。curl工作。真的想对JustOneDb执行Rest,因为同一个应用程序有Perl peace。谢谢。好的,我会与JustOneDb的家伙联系。它仍然不工作。点网比使用curl更具限制性。TAIt仍然不工作。点网比使用curl更具限制性g只是卷曲
string authInfo = "zn0lvkpdhdxb70l2_DUMMY_urshn5e7i41lb3fiwuh";
request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));