在使用Httpclient的 PostAsyn 方法时要求传入两个参数一个请求地址一个是HttpContent类型,这个类型是请求报文体吗,要如何创建这个参数呢?
HttpContent是抽象类
通过HttpContent的子类来构建Post数据。
比较常用的有StringContent,FormUrlEncodedContent,MultipartFormDataContent 等。
个人比较喜欢用StringContent来传递Json数据,比较简单。
就是StringContent传递过去之后,服务器端如何接收呢,我看了下request对象里面没找到传递过来的数据额
new stringcontent("你好")
看你要post过去的报文正文是什么。如果是字符串就像上面那样。如果是form表单。有form表单的实现。你自己在方法里new 按下空格看自动提示
再请问一下,如果是用stringContent发过去,在服务器端要如何接收呢,我试过QueryString[],Form[],都接收不了
@huanent: 去了解下http协议吧,不然还会遇到更多问题。
在服务端就是从请求里取正文流就是。要用form接的话,有一个formcontent之类的正文,发过去就可以
url = "xxxx" ; string postData = "{\"userid\": \"" + 1 + "\",\"agentid\": \"1\"}"; byte[] byteArray = Encoding.UTF8.GetBytes(postData); HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url)); webRequest.Method = "post"; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.ContentLength = byteArray.Length; System.IO.Stream newStream = webRequest.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length); newStream.Close(); HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); data = new System.IO.StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd();
Post请求
试试吧!这个很屌。
因为要做服务器端身份验证要带cookie,所以尝试用HttpClient的
原来是在request的GetBufferedInputStream流里面,谢谢各位
楼主,你这个问题是怎么解决的,感觉你我的情况和你的很相似,能分享一下源码吗?