首页 新闻 赞助 找找看

远程服务器返回错误: (401) 未经授权

0
悬赏园豆:5 [已解决问题] 解决于 2020-10-17 10:55
  string responseBody = "";
            HttpWebRequest request;
            try
            {
                var code = Encoding.UTF8;
                byte[] data = code.GetBytes(strPostdata);

                request = (HttpWebRequest)WebRequest.Create(new Uri(posturl));
                request.UseDefaultCredentials = true;
                request.PreAuthenticate = true;


                request.Credentials = CredentialCache.DefaultCredentials;
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = data.Length;
                using (Stream requestStream = request.GetRequestStream())
                {
                    requestStream.Write(data, 0, data.Length);
                    requestStream.Close();
                }
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader stream = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
                responseBody = stream.ReadToEnd();
                stream.Close();
                response.Close();
            }
            catch (WebException ex)
            {
                responseBody = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
            }

在网上也找了几个post提交的方法 都有这个问题 但是使用http在线工具测试 没有这个问题

牧人羊的主页 牧人羊 | 初学一级 | 园豆:5
提问于:2017-01-24 16:19
< >
分享
最佳答案
0

就是没有访问权限呗

 

收获园豆:5
~扎克伯格 | 小虾三级 |园豆:1923 | 2017-01-24 16:28
其他回答(1)
0

确定是这个网址有问题还是所有的网址用这种方法都有问题。两个情况解决方法不一样的。

wangjinming | 园豆:569 (小虾三级) | 2017-01-24 16:23

URL地址是没问题的

支持(0) 反对(0) 牧人羊 | 园豆:5 (初学一级) | 2017-01-24 16:29

代码是写在控制台里面的

支持(0) 反对(0) 牧人羊 | 园豆:5 (初学一级) | 2017-01-24 16:32

@牧人羊: 你在头里面加上账号密码试试看,也就是楼下说的授权。

支持(0) 反对(0) wangjinming | 园豆:569 (小虾三级) | 2017-01-24 16:34

@牧人羊: 参考这个文章http://www.cnblogs.com/xqhppt/archive/2012/03/21/2409755.html

支持(0) 反对(0) wangjinming | 园豆:569 (小虾三级) | 2017-01-24 16:37

@牧人羊: 这行是关键request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes("username:password")));

支持(0) 反对(0) wangjinming | 园豆:569 (小虾三级) | 2017-01-24 16:37

@wangjinming: 按照上面的写了 还是有这个问题

支持(0) 反对(0) 牧人羊 | 园豆:5 (初学一级) | 2017-01-24 16:45

@牧人羊: username:password要改成网站的账号和密码啊。

支持(0) 反对(0) wangjinming | 园豆:569 (小虾三级) | 2017-01-24 16:46

@牧人羊: //身份凭证

    CredentialCache myCredential = new CredentialCache();
    myCredential.Add(new Uri(url), "Basic", new NetworkCredential("username", "password"));
    request.Credentials = myCredential;
支持(0) 反对(0) wangjinming | 园豆:569 (小虾三级) | 2017-01-24 16:48

@wangjinming: 都传了  其实应该不需要的  因为我传参数的时候有一个token 这个token是网站给的

支持(0) 反对(0) 牧人羊 | 园豆:5 (初学一级) | 2017-01-24 16:51

@牧人羊: 把地址发我,我给你测试一下。

支持(0) 反对(0) wangjinming | 园豆:569 (小虾三级) | 2017-01-24 16:53

@wangjinming: 很感谢了,但是这个API是请求我们的线上数据,不能泄露出去。 问题我自己在想想。再次感谢你的热心帮助。

支持(0) 反对(0) 牧人羊 | 园豆:5 (初学一级) | 2017-01-24 16:56

@牧人羊: 有可能是后台的问题。

支持(0) 反对(0) wangjinming | 园豆:569 (小虾三级) | 2017-01-24 16:57

@wangjinming: 我再去看看它的API文档 看看有什么落下的

支持(0) 反对(0) 牧人羊 | 园豆:5 (初学一级) | 2017-01-24 16:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册