700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c php curl post php curl post

c php curl post php curl post

时间:2020-04-23 22:25:01

相关推荐

c  php curl post php curl post

问题描述

需要向xx网站提交一个数据,但是java和python那边都成功了,而php不行

问题出现的环境背景及自己尝试过哪些方法

步骤就俩,1 curl get获得token 2 组装数据,提交post,问题出现在第二步上,返回值为空

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

header("content-type:text/html;charset=utf8");

//复用

$ch = curl_init();

function request($url,$post='',$headers)

{

global $ch;

//$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

if($post) {

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

}

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

if($post){

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

return curl_exec($ch);

}

$mcId = "mobi02-cdwl-s226";

#获取token

$url = "/pa18shoplife/details/out/ob/qnyc-jynj/quote.jsp";

$headers = array('user-agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Mobile Safari/537.36');

$file = request($url,'',$headers);

$from = '';

$message=explode($from,$file);

$message=explode($end,$message[1]);

$token = $message[0];

#伪造请求

$url = "/pa18shoplife/engine.ajax?flowId=&reqId=_details_out_ob_qnyc-jynj_quote_jsp_quoteReq4&WT.mc_id=mobi02-cdwl-s226-xqb";

$body = "{\"reflowId\": \"\", \"lifeDatas\": {\"mediaSource\": \"mobi02-cdwl-s226-xqb\", \"tbhuomian\": \"0\", \"yiliaobxj\": \"0\", \"jibingbx\": \"0\", \"jibingSums\": \"0\"}, \"createFlow\": \"true\", \"policyExtendDTO\": {\"businessLine\": \"ob\"}, \"pid\": \"8000002081\", \"appPlanDTO\": [{\"payPeriod\": \"10\", \"sumIns\": \"100000\"}], \"tokenData\": \"". $token . "\", \"insurantDTO\": [{\"birth\": \"-04-22\", \"sex\": \"M\"}], \"policyDTO\": {\"paymentType\": \"2\"}, \"insurerDTO\": {\"mobile\": \"15890312027\"}}";

$headers = array('X-Custom-header:stuff','content-type:application/json');

$result = request($url,$body,$headers);

print_r($result);exit();

以下为java请求成功的代码:

private static void fluent() {

try {

String res = Request.Get("/pa18shoplife/details/out/ob/qnyc-jynj/quote.jsp")

.addHeader("user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Mobile Safari/537.36")

.execute().returnContent().asString();

JXDocument document = JXDocument.create(Jsoup.parse(res));

List list = document.selN("//*[@id=\"tokenData\"]");

String url = "/pa18shoplife/engine.ajax?flowId=&reqId=_details_out_ob_qnyc-jynj_quote_jsp_quoteReq4&WT.mc_id=mobi02-cdwl-s226-xqb";

String bodys = "{\"reflowId\": \"\", \"lifeDatas\": {\"mediaSource\": \"mobi02-cdwl-s226-xqb\", \"tbhuomian\": \"0\", \"yiliaobxj\": \"0\", \"jibingbx\": \"0\", \"jibingSums\": \"0\"}, \"createFlow\": \"true\", \"policyExtendDTO\": {\"businessLine\": \"ob\"}, \"pid\": \"8000002081\", \"appPlanDTO\": [{\"payPeriod\": \"10\", \"sumIns\": \"100000\"}], \"tokenData\": \""

+ list.get(0).asElement().attr("value") + "\", \"insurantDTO\": [{\"birth\": \"-04-22\", \"sex\": \"M\"}], \"policyDTO\": {\"paymentType\": \"2\"}, \"insurerDTO\": {\"mobile\": \"15890312027\"}}";

StringEntity stringEntity = new StringEntity(bodys, "utf-8");

String res2 = Request.Post(url)

.addHeader("X-Custom-header", "stuff")

.addHeader("content-type", "application/json")

.version(HttpVersion.HTTP_1_1)

.bodyString("Important stuff", ContentType.DEFAULT_TEXT)

.body(stringEntity)

.execute().returnContent().asString();

System.out.println("DD" + res2);

} catch (Exception e) {

e.printStackTrace();

}

}

你期待的结果是什么?实际看到的错误信息又是什么?

个人对java不太了解,有没有大佬能看出php部分是有什么问题的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。