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在线工具测试 没有这个问题
就是没有访问权限呗
确定是这个网址有问题还是所有的网址用这种方法都有问题。两个情况解决方法不一样的。
URL地址是没问题的
代码是写在控制台里面的
@牧人羊: 你在头里面加上账号密码试试看,也就是楼下说的授权。
@牧人羊: 参考这个文章http://www.cnblogs.com/xqhppt/archive/2012/03/21/2409755.html
@牧人羊: 这行是关键request.Headers.Add(
"Authorization"
,
"Basic "
+ Convert.ToBase64String(
new
ASCIIEncoding().GetBytes(
"username:password"
)));
@wangjinming: 按照上面的写了 还是有这个问题
@牧人羊: username:password
要改成网站的账号和密码啊。
@牧人羊: //身份凭证
CredentialCache myCredential =
new
CredentialCache();
myCredential.Add(
new
Uri(url),
"Basic"
,
new
NetworkCredential(
"username"
,
"password"
));
request.Credentials = myCredential;
@wangjinming: 都传了 其实应该不需要的 因为我传参数的时候有一个token 这个token是网站给的
@牧人羊: 把地址发我,我给你测试一下。
@wangjinming: 很感谢了,但是这个API是请求我们的线上数据,不能泄露出去。 问题我自己在想想。再次感谢你的热心帮助。
@牧人羊: 有可能是后台的问题。
@wangjinming: 我再去看看它的API文档 看看有什么落下的