2012-01-12 350 views
0

我试图向服务器接口发送HTTP请求。 但我真的很困惑如何指定我想发送到服务器接口方法的参数。我到目前为止所做的。发送HTTP请求,参数混淆

我的服务器接口只接受POST请求,这就是为什么我使用POST,并问我是否使用参数的方式有问题。

Dim parameters As String = "?text=test&type=person" 
Dim buffer As Byte() = Encoding.UTF8.GetBytes(parameters) 
Dim WebReq As HttpWebRequest = CType(WebRequest.Create(NameRecPage), HttpWebRequest) 
'NameRecPage is the url 

WebReq.Credentials = New NetworkCredential(Username, Password) 'variables are defined and theier values are valid 

WebReq.Method = "POST" 
WebReq.ContentType = "application/x-www-form-urlencoded" 
WebReq.ContentLength = buffer.Length 
Dim PostData As Stream = WebReq.GetRequestStream() 

PostData.Write(buffer, 0, buffer.Length) 
PostData.Close() 

Dim WebResp As HttpWebResponse = DirectCast(WebReq.GetResponse(), HttpWebResponse) 
Dim Answer As Stream = WebResp.GetResponseStream() 
Dim _Answer As New StreamReader(Answer) 

Dim inputBuffer As String = _Answer.ReadToEnd() 

这是我的代码到目前为止,它正在发送请求。但我得到一个错误,说第一个(我想也是第二个)参数为空。

我非常不确定这两行:

Dim parameters As String = "?text=test&type=person" 
WebReq.ContentType = "application/x-www-form-urlencoded" 

是不是有什么毛病我的参数语法?

这些拼写在我的内容中是否正确?什么是内容类型?它说了什么,我该如何确定放哪个值?

我不知道如果这是ContentType的正确值,实际上我只是想接收一些JSON字符串返回的fromatted数据。

+0

什么是错误的确切文字? – SLaks 2012-01-12 14:28:07

+0

改为使用WebRequest.Create(url)静态方法。 http://stackoverflow.com/questions/1238773/problem-with-slash-within-a-query-string – Calvin 2012-01-12 14:45:17

+0

我认为这只引用GET请求? – inva 2012-01-12 14:49:11

回答

0

我觉得在

WebReq.Method = "POST" 

你的问题应该是GET

+0

感谢您的帮助,但我知道只能使用POST请求访问该接口。我将这个添加到我的文章中,因此我问,如果我指定参数的方式可能有问题。 – inva 2012-01-12 14:44:14

+0

毫米,然后省略“?” – 2012-01-12 14:55:47