3
A
回答
0
如果你使用Zend框架已經你應該嘗試Zend_Http_Client你所提到的:
$client = new Zend_Http_Client($host, array(
'maxredirects' => 3,
'timeout' => 30));
$client->setMethod(Zend_Http_Client::POST);
// You might need to set some headers here
$client->setParameterPost('key', 'value');
$response = $client->request();
-1
RESTClient實現是這個可愛的小應用程序:http://code.google.com/p/rest-client/
1
您可以通過套接字實現它自己:
$url = parse_url(''); // url
$requestArray = array('var' => 'value');
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock, $url['host'], ((isset($url['port'])) ? $url['port'] : 80));
if (!$sock) {
throw new Exception('Connection could not be established');
}
$request = '';
if (!empty($requestArray)) {
foreach ($requestArray as $k => $v) {
if (is_array($v)) {
foreach($v as $v2) {
$request .= urlencode($k).'[]='.urlencode($v2).'&';
}
}
else {
$request .= urlencode($k).'='.urlencode($v).'&';
}
}
$request = substr($request,0,-1);
}
$data = "POST ".$url['path'].((!empty($url['query'])) ? '?'.$url['query'] : '')." HTTP/1.0\r\n"
."Host: ".$url['host']."\r\n"
."Content-type: application/x-www-form-urlencoded\r\n"
."User-Agent: PHP\r\n"
."Content-length: ".strlen($request)."\r\n"
."Connection: close\r\n\r\n"
.$request."\r\n\r\n";
socket_send($sock, $data, strlen($data), 0);
$result = '';
do {
$piece = socket_read($sock, 1024);
$result .= $piece;
}
while($piece != '');
socket_close($sock);
// TODO: Add Header Validation for 404, 403, 401, 500 etc.
echo $result;
當然,你必須改變它來滿足你的需求或將其包裝到一個函數中。
22
你可以使用file_get_contents()。
PHP手冊有一個不錯的example here。這僅僅是從手動複製過去:
$postdata = http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/submit.php', false, $context);
+0
超級簡單的方法來完成工作!謝謝。 – 2017-10-31 09:48:34
0
最簡單的方法,如果你有PHP與pecl_http配置爲:
-
:
- 文檔http://php.net/manual/en/function.http-post-data.php
- 安裝:http://php.net/manual/en/http.install.php
$response = http_post_data($url, $post_params_string);
的功能是在php.net記錄
PECL還提供了一個有據可查的方式來處理餅乾,重定向,認證等方面的POST之前:
1
可以使用stream_context_create和file_get_contents
<?php
$context_options = array (
'http' => array (
'method' => 'POST',
'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
. "Content-Length: " . strlen($data) . "\r\n",
'content' => $data
)
);
?>
$context = stream_context_create($context_options);
$data = file_get_contents('http://www.php.net', false, $context);
相關問題
- 1. 通過curl發出帖子請求
- 2. 發送發帖請求無框架
- 3. php多捲曲多請求,多發帖請求
- 4. 發送android的帖子請求
- 5. 猛砸多捲曲請求發出
- 6. NodeJs沒有發送帖子請求
- 7. 通過API發送帖子請求
- 8. 錯誤時發射帖子請求
- 9. onLocationChange() - 不能發送帖子請求
- 10. 發送兩次請求的捲髮
- 11. 無法修補請求發帖
- 12. 捲髮請求失敗
- 13. 捲髮請求超時
- 14. 併發捲曲POST請求
- 15. 在C#中發佈帖子請求導致奇怪的輸出
- 16. ASP.Net:IE6發出無效請求
- 17. 無法發出POST請求
- 18. 無法發出UDP請求
- 19. 無法發出HttpClient請求
- 20. 查看guzzle發帖請求
- 21. 使用角度UI模式發出帖子請求
- 22. 使用jQuery與自定義標頭髮出帖子請求
- 23. jQuery發出帖子請求和檢索結果
- 24. Laravel CORS中間件無法發佈帖子和資源請求
- 25. 如何使用Angular 4發佈帖子請求?
- 26. 如何發送帖子請求並獲取文件? Python Django
- 27. vert.x:你如何正確發送帖子請求?
- 28. 如何發送帖子請求使用排球?
- 29. 如何使用webview發佈帖子請求?
- 30. 去發送帖子要求?
你寧願部署框架比使用cURL? – 2011-12-21 23:38:26
@webarto:deploy? Zend框架只需要一個包含路徑。有了這個,你可以訪問這麼多的價值,它是值得的 – dynamic 2011-12-22 08:23:53