Home > Article > Backend Development > An interesting thing about my request simulation using PHP!
The following PHP tutorial column will introduce to you an interesting thing about implementing PHP request simulation. I hope it will be helpful to everyone!
I earned 50 yuan by simply implementing PHP request simulation
An interesting thing happened this weekend: I saw someone in the group who needed assistance with PHP development , and promised to be paid. I solved the problem after self-recommendation, and received 50 yuan.
Next I will talk about the whole thing in detail.
I opened QQ after get off work on Saturday, and while browsing the group messages, I saw this sentence: "Is there anyone in the group who can write PHP code, for free." I immediately added his QQ and told him that I was doing PHP development and I could help.
I received his reply on Sunday morning. He gave me a document and asked me to see if it could be implemented. I browsed the entire document carefully and found that it was a third-party interface document. I told him to dock this kind of document. The interface is very simple. I wanted to know what his specific business was, and he told me that I just needed help to get through it. The following is a screenshot of our conversation:
Although the money he offered was not much, I happened to have nothing to do at the time, so I accepted the offer. I copied the code I wrote before, then changed it again, and it was adjusted quickly. I showed him a screenshot. , he sent me a 50 yuan red envelope after confirming that there was no problem. I also sent him the documents, and the whole thing was over.
The next thing I want to talk about is the technical issues behind this matter.
First of all, he understands PHP development. He encountered a problem during development. I don’t know if he was too lazy to search or because he didn’t find a solution. This problem is actually a small problem in PHP implementation of request simulation. .
Now I share the entire file code, hoping to be of some help to people who encounter the same problem. Implementation code:
<?php class HttpClientUtil { public function sendRequest($type = '', $url = '', $data = [], $timeout = 60) { try { $type = strtoupper($type); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url);//设置请求链接 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//不直接输出页面 curl_setopt($curl, CURLOPT_HEADER, 0);//获取响应头向下 curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); //请求超时时间,单位:秒 curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1'); if (substr($url, 0, 5) == 'https') { //自动判断是否是https提交 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); } curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type:application/json']); switch ($type) { case "GET" : curl_setopt($curl, CURLOPT_HTTPGET, true); break; case "POST": curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); break; case "PUT" : curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); break; case "DELETE": curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); break; } $result = curl_exec($curl); $err_code = curl_errno($curl); $curlInfo = curl_getinfo($curl); curl_close($curl); if ($err_code) { return false; } if ($curlInfo['http_code'] == 200) { //只有200状态才返回数据 return json_decode($result, true); } return false; } catch (\Exception $e) { throw new \Exception($e->getMessage()); } } public function createSign($data){ // 拼接 $dataStr = ''; foreach ($data as $key=>$value){ $dataStr.="{$key}={$value}&"; } // 拼接商户密钥 $dataStr.='access_token=***B8'; // 加密 $sign =strtoupper(MD5($dataStr)); $data['sign']=$sign; return $data; } } $api = new HttpClientUtil(); $url = 'http://***/order/pay'; $data=[ 'userName'=>'test', 'version'=>'2.0', 'cardName'=>'张三', 'cardNum'=>'20932402940189310293', 'openBank'=>'招商银行', 'amount'=>'10.00', 'outOrderId'=>'JD123123123', 'returnUrl'=>'/', ]; $res = $api->sendRequest('post',$url,$api->createSign($data)); print_r($res);
Recommended learning: "PHP Video Tutorial 》
The above is the detailed content of An interesting thing about my request simulation using PHP!. For more information, please follow other related articles on the PHP Chinese website!