我需要根據文檔found here生成一個HTTP post請求。如何使用php curl創建帶有multipart/form-data body的HTTP POST請求
這裏是請求體應該怎麼看起來像
Content-Type: multipart/form-data; boundary=---------------------------7d54b1fee05aa
-----------------------------7d54b1fee05aa
Content-Disposition: form-data; name="Username"
5556090455
-----------------------------7d54b1fee05aa
Content-Disposition: form-data; name="Password"
qwerty
-----------------------------7d54b1fee05aa
Content-Disposition: form-data; name="Attachment"; filename="C:\example.doc"
<Document content is here>
-----------------------------7d54b1fee05aa
Content-Disposition: form-data; name="Recipient"
5556465589|John Doe
-----------------------------7d54b1fee05aa
Content-Disposition: form-data; name="Recipient"
5555568552|John Smith
-----------------------------7d54b1fee05aa
Content-Disposition: form-data; name="Coverpagetext"
This is a test fax from web
-----------------------------7d54b1fee05aa--
下面的例子是我迄今爲止
$postURL = 'https://service.ringcentral.com/faxapi.asp';
$ch = curl_init($postURL);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/');
$hiddens = '';
$hiddens .= 'Username'.'='.'8558415124'.'&';
$hiddens .= 'Password'.'='.'Champion92'.'&';
$hiddens .= 'Recipient'.'='.'8882466583'.'&';
$hiddens .= 'Coverpage'.'='.'NONE'.'&';
$hiddens .= 'Coverpagetext'.'='.'asdf asdf'.'&';
$hiddens .= 'Attachment'.'='.'C:\example.doc'.'&';
$hiddens = substr($hiddens, 0, strlen($hiddens)-1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $hiddens);
$page = curl_exec($ch);
echo $page;// output result
if ($page === FALSE) {
var_dump(curl_getinfo($ch));
exit("Post: FAILED = ".curl_error($ch));
}
curl_close($ch); // close the connection
我得到的1響應PHP代碼(這意味着授權失敗)。我感覺我正在做一個普通的發佈請求,並且授權失敗,因爲請求格式不正確。
我怎樣才能把它作爲多部分請求? 如何解決我發送的HTTP標題,而不是我收到的標題?