java发送post到phP,如何使用PHP发送POST请求?

实际上,我想阅读搜索查询之后的内容,完成之后。 问题在于URL仅接受POST方法,并且对GET方法不执行任何操作...

我必须在domdocument或file_get_contents()的帮助下阅读所有内容。 有什么方法可以让我使用POST方法发送参数,然后通过PHP读取内容?

#1楼

如果要那样的话,还有另一个CURL方法。

一旦掌握了PHP curl扩展的工作方式(将各种标志与setopt()调用结合在一起),这将非常简单。 在这个例子中,我有一个变量$ xml,它保存了我准备发送的XML-我将把它的内容发布到例子的测试方法中。

$url = 'http://api.example.com/services/xmlrpc/';

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);

curl_close($ch);

//process $response

首先我们初始化连接,然后使用setopt()设置一些选项。 这些告诉PHP我们正在发出一个发布请求,并且我们正在发送一些数据,并提供数据。 CURLOPT_RETURNTRANSFER标志告诉curl向我们提供输出,作为curl_exec的返回值,而不是输出它。 然后我们进行呼叫并关闭连接-结果在$ response中。

#2楼

还有更多可以使用的

$fields = array(

'name' => 'mike',

'pass' => 'se_ret'

);

$files = array(

array(

'name' => 'uimg',

'type' => 'image/jpeg',

'file' => './profile.jpg',

)

);

$response = http_post_fields("http://www.example.com/", $fields, $files);

?>

#3楼

如果您有机会使用Wordpress来开发应用程序(这实际上是获得授权,信息页等的便捷方法,即使是非常简单的东西),也可以使用以下代码段:

$response = wp_remote_post( $url, array('body' => $parameters));

if ( is_wp_error( $response ) ) {

// $response->get_error_message()

} else {

// $response['body']

}

它使用不同的方式来发出实际的HTTP请求,具体取决于Web服务器上可用的内容。 有关更多详细信息,请参见HTTP API文档 。

如果您不想开发自定义主题或插件来启动Wordpress引擎,则可以在wordpress根目录下的独立PHP文件中执行以下操作:

require_once( dirname(__FILE__) . '/wp-load.php' );

// ... your code

它不会显示任何主题或输出任何HTML,只需使用Wordpress API即可!

#4楼

我在寻找类似的问题,并且找到了一种更好的方法。 所以就这样。

您只需将以下行放在重定向页面上(例如page1.php)。

header("Location: URL", TRUE, 307); // Replace URL with to be redirected URL, e.g. final.php

我需要它来重定向REST API调用的POST请求。 该解决方案能够使用发布数据以及自定义标头值进行重定向。

#5楼

我使用以下函数使用curl发布数据。 $ data是要发布的字段数组(将使用http_build_query正确编码)。 使用application / x-www-form-urlencoded对数据进行编码。

function httpPost($url, $data)

{

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($curl);

curl_close($curl);

return $response;

}

@Edward提到可以省略http_build_query,因为curl将正确编码传递给CURLOPT_POSTFIELDS参数的数组,但是建议在这种情况下,数据将使用multipart / form-data进行编码。

我将此函数与期望使用application / x-www-form-urlencoded编码的数据的API结合使用。 这就是为什么我使用http_build_query()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值