android向php发送请求数据类型,PHP中采用POST/GET方式发送数据,含contentType类型

最近做一些向服务器请求数的app,查了好多都,不太好用,时不时的会失败,有的还没有content类型,对于一些指定类型的服务器就不太好说了,所以从网上搜索了几个,结合自己之前用过的,重新组合了一个POST/GET,代码来源于网络,只是做了部分修改,拿出来分享一下

直接上码:

/**

* 发送HTTP请求

*

* @param string $url 请求地址

* @param string $method 请求方式 GET/POST

* @param string $refererUrl 请求来源地址

* @param array $data 发送数据

* @param string $contentType

* @param string $timeout

* @param string $proxy

* @return boolean

*/

function send_request($url, $data, $refererUrl = '', $method = 'POST', $contentType = 'application/json', $timeout = 30, $proxy = false) {

$ch = null;

if('POST' === strtoupper($method)) {

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HEADER,0 );

curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

/*修复加密网站不能成功的情况*/

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

/*--------------*/

if ($refererUrl) {

curl_setopt($ch, CURLOPT_REFERER, $refererUrl);

}

if($contentType) {

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:'.$contentType));

}

if(is_string($data)){

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

} else {

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

}

} else if('GET' === strtoupper($method)) {

if(is_string($data)) {

$real_url = $url. (strpos($url, '?') === false ? '?' : ''). $data;

} else {

$real_url = $url. (strpos($url, '?') === false ? '?' : ''). http_build_query($data);

}

$ch = curl_init($real_url);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:'.$contentType));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

if ($refererUrl) {

curl_setopt($ch, CURLOPT_REFERER, $refererUrl);

}

} else {

$args = func_get_args();

return false;

}

if($proxy) {

curl_setopt($ch, CURLOPT_PROXY, $proxy);

}

$ret = curl_exec($ch);

$info = curl_getinfo($ch);

$contents = array(

'httpInfo' => array(

'send' => $data,

'url' => $url,

'ret' => $ret,

'http' => $info,

)

);

curl_close($ch);

return $ret;

}

使用:

$data = '{"username":"****","email":"**X@mail.com"}';

$url="http://www.**xx.com/user";

$res = send_request($url,$data);

挺方便的

感觉效果不错,没发现有大的问题。如果有人有类似需求,推荐大家采用这个function.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值