Я пытаюсь сделать пост на сайте, и сайт использует следующий шаблон:
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.
Как мне сделать запрос для массива с переменными 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
Других решений пока нет …