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. 发送发帖请求无框架
- 2. php多卷曲多请求,多发帖请求
- 3. 猛砸多卷曲请求发出
- 4. 发送两次请求的卷发
- 5. 无法修补请求发帖
- 6. 并发卷曲POST请求
- 7. 在C#中发布帖子请求导致奇怪的输出
- 8. 无法发出UDP请求
- 9. ASP.Net:IE6发出无效请求
- 10. 无法发出HttpClient请求
- 11. 查看guzzle发帖请求
- 12. 使用角度UI模式发出帖子请求
- 13. Laravel CORS中间件无法发布帖子和资源请求
- 14. vert.x:你如何正确发送帖子请求?
- 15. 如何使用Angular 4发布帖子请求?
- 16. 如何发送帖子请求并获取文件? Python Django
- 17. 如何发送帖子请求使用排球?
- 18. 去发送帖子要求?
- 19. 如何发送发帖请求而不提交按钮
- 20. JSONP请求发出
- 21. Android无法发送帖子
- 22. 卷发到达角2 HTTP GET请求
- 23. 卷发请求失败(超时)
- 24. 卷曲请求不发送PARAMATERS
- 25. 无法发送卷曲请求。该请求的授权已被拒绝
- 26. Gunicorn如何向瓶子发送请求
- 27. 无法获得回复帖子请求
- 28. scrapy无法发出请求()回调
- 29. 通过AJAX问题发送带HTML评论的帖子请求
- 30. Laravel发布错误“TokenMismatchException”的帖子请求
你宁愿部署框架比使用cURL? – 2011-12-21 23:38:26
@webarto:deploy? Zend框架只需要一个包含路径。有了这个,你可以访问这么多的价值,它是值得的 – dynamic 2011-12-22 08:23:53