我正在尝试向网站发帖,该网站使用以下模板:
curl_setopt_array($ch, array(
CURLOPT_URL => 'http://api.upcdatabase.org/submit/curl.php',
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => http_build_query(array(
'upc' => '0000000000000',
'mrsp' => '0.00',
'apikey' => 'YOUR_API_KEY_GOES_HERE',
'title' => 'Title of product',
'alias' => 'Title alias',
'description' => 'Optional lengthy description of product.',
'unit' => 'Per case'
))));
$server_output = curl_exec($ch);
curl_close($ch);
我发现这个网站可以帮助形成POST。
http://msdn.microsoft.com/en-us/library/debx8sh9(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-27
如何使用变量 upc、mrsp、apikey、title...等,以便我可以将其发布到网站?
您的主要问题可能是您的帖子数据使用逗号而不是与号作为分隔符。这段代码有效,我得到了"确定"响应:
Imports System.Net
Imports System.Text
Module Module1
Sub Main()
Dim req As WebRequest = WebRequest.Create("http://api.upcdatabase.org/submit/curl.php")
req.Method = "POST"
Dim http As HttpWebRequest = DirectCast(req, HttpWebRequest)
http.ContentType = "application/x-www-form-urlencoded"
Dim postData As String = "upc=0111222333449&apikey=YOU_CANT_SEE_MY_KEY&title=TOMATO SAUCE&description=TOMATO SAUCE&mrsp=1.23&unit=Per Case"
Dim requestBytes As Byte() = Encoding.UTF8.GetBytes(postData)
req.ContentLength = requestBytes.Length
Dim reqStream As System.IO.Stream = http.GetRequestStream()
reqStream.Write(requestBytes, 0, requestBytes.Length)
reqStream.Close()
Dim response As WebResponse = http.GetResponse()
Dim respStream As System.IO.Stream = response.GetResponseStream()
Dim rdr As System.IO.StreamReader = New IO.StreamReader(respStream)
Dim status As String = rdr.ReadToEnd()
Console.WriteLine(status)
Console.ReadKey()
End Sub
End Module