原因:url中包含空格
背景:做项目对接时,用的是get请求,然后输入的参数中有空格就会报这个错误
解决方法:
1,url中包含空格,使用urlencode去掉空格。这是在网上找的,但是不适合我的

*****************************************************************
//GBK
//echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+
//echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
//echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20
//echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
////UTF-8
//echo urlencode("中文-_. ")."\n"; //%E4%B8%AD%E6%96%87-_.+
//echo urldecode("%E4%B8%AD%E6%96%87-_. %E4%B8%AD%E6%96%87")."\n";//中文-_. 中文
//echo rawurlencode("中文-_. ")."\n";//%E4%B8%AD%E6%96%87-_.%20
//echo rawurldecode("%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20")."\n"; //中文-_. 中文-_.

2,使用get请求时,将所有的值放在数组中,而不是拼接url
我的get请求是把接受的参数拼接,参数值有空格时,就会报错,因此使用了另一种方法

这是拼接url,$url = "https://baidu.com/api/mami/NursingHandler.ashx?act=GETBABYRECORDINFONEW&babyId=".$data['babyid']."&custId=".$custId."&Code=".$data['code'];$list =  CurlHelper::getInstance()->curl_get_https($url);curl_get_https方法:function curl_get_https($url){$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HEADER, 0);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  // 跳过检查curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  // 跳过检查$tmpInfo = curl_exec($curl); curl_close($curl);return $tmpInfo;   //返回json对象}
 public function actionEvaluate(){$post = \Yii::$app->request->post();$custId = CurlHelper::getInstance()->getErpHsId(\Yii::$app->mall->id);$user_id =CurlHelper::getInstance()->getErpUserId(\Yii::$app->user->id);$data['act'] ='EVALUATE';$data['custId'] =$custId;$data['userid'] =$user_id;$data['marketType'] = $post['markType'];$data['projectid'] = $post['projectid'];$data['content'] = $post['content'];$data['star'] = $post['star'];$gen ="https://mm.hxqt.cn/api/mami/CustomerHandler.ashx";$url = $gen . "?" . http_build_query($data);$list =  CurlHelper::getInstance()->httpGet($url);return ['code' => ApiCode::CODE_SUCCESS,'data' =>['list'=>$list,]]; }
httpGet的方法:public function httpGet($url, $param = array(), $headers = array()){try {$url = $this->appendParams($url, $param);$client = $this->getClient($headers);$response = $client->get($url);$body = $response->getBody();} catch (ClientException $e) {$body = $e->getResponse()->getBody();}if (!$body) {throw new \Exception('请求没有有效的返回');}$res = json_decode($body->getContents(), true);if (!$res) {throw new \Exception('请求返回值为空');}return $res;}
private function appendParams($url, $params = []){if (!is_array($params)) {return $url;}if (!count($params)) {return $url;}$url = trim($url, '?');$url = trim($url, '&');$queryString = $this->paramsToQueryString($params);if (mb_stripos($url, '?')) {return $url . '&' . $queryString;} else {return $url . '?' . $queryString;}}public function getClient($headers = array()){return new Client(['verify' => false,'headers' => $headers]);}

The request is badly formed相关推荐

  1. HTTP Error 400. The request is badly formed.

    /* * 检验关键字 */ public function checksensitivewordsAjax() {$words = $this->post('words');$words = u ...

  2. 火狐浏览器访问网站出现 HTTP Error 400. The request is badly formed.错误,怎么解决

    今天在访问某个网站时,出现一个"HTTP Error 400. The request is badly formed."错误, 那么应该如何解决呢? 1.问题描述: 用火狐浏览网 ...

  3. Cshell IF在进行数字计算时 提示 if: Badly formed number.

    今天在写Cshell脚本时碰到的问题,特此记录来帮助自己加深记忆 Cshell的 if() 模块用法再次不赘述 可参考我收藏的一篇说明: https://blog.csdn.net/yuexiaxia ...

  4. ORA-39071: Value for EXCLUDE is badly formed.

    在用expdp/impdp 导出导入数据的时候,有时候我们会用 exclude排除某些表的时候会报如下的错误: ORA-39001: invalid argument value ORA-39071: ...

  5. ORA-39001: invalid argument value ORA-39071: Value for EXCLUDE is badly formed.

    我在使用Oracle的逻辑备份expdp的exclude特性时,总是出现以下错误: ORA-39001: invalid argument value ORA-39071: Value for EXC ...

  6. Netbeans 'badly formed maven project' 问题

    Netbeans 6.7 + Apache Maven 2.0.9 有以下结构的maven工程: top_project |---pom.xml(top_level) |---sub_project ...

  7. raise ValueError(‘badly formed hexadecimal UUID string‘

    如果说在python项目中models类中将原本是自增的字段,修改为UUID会出现什么问题 1.当你使用serializers的时候你会发现报错,   raise ValueError('badly ...

  8. Mail merge region 'tablePrint' is badly formed. TableStart and TableEnd should be in the same sectio

     模板文件当中, TableStart and TableEnd必须在同一界面,同一行当中,或者是同一单元格中.,把模板设   置成要求的同一界面,同一行,或者是同一单元格就好了

  9. DSP中由C转成C++出现编译 badly formed pragma错误的解决.

    这是由于C++的#pragma DATA_SECTION用法同C不一致造成,以下是实例.省去了NAME. Using the DATA_SECTION Pragma a)   C source fil ...

最新文章

  1. Android定制:修改开机启动画面
  2. AI人才报告 | AI稳超互联网平均薪资,哪些细分领域最受追捧?
  3. 极客新闻——06、刘润:给年轻人的10条工作建议
  4. (转)#Pragma用法
  5. Nginx+Supervisor安装部署.NET Core项目
  6. Atom 实用侧边栏插件
  7. python如何爬取网站所有目录_[python] 爬取网站所有的URL
  8. 从零开始学电脑_《新手从零开始学电脑》1.6——怎样才能打一手好字
  9. 代替for循环的常见问题
  10. 怀旧服开新服务器消息,怀旧服B测已经开启 全新内容爆料汇总
  11. 进程退出:SIGINT、SIGTERM和SIGKILL区别
  12. An'droid TextView
  13. 抢注小程序“诱饵”多 轻信者被“套路”
  14. linux格式化挂载的硬盘,linux格式化和挂载硬盘
  15. Mybatis中 if 语句使用空格问题
  16. 美术课程对计算机的好处,学美术的十大好处
  17. Android如何做出带有复杂水印的图片
  18. Teach-Repeat-Replan: A Complete and Robust System for Aggressive Flight in Complex Environments
  19. viicms仿乐享微信源码官方版
  20. 使用国密算法签名PDF文件

热门文章

  1. 找靓机大促活动业务高峰护航案例
  2. Virtual Serial Port Driver Pro 11 Crack
  3. 史上最全PLSQL语法大全
  4. 企业开发:Flex or HTML5?
  5. 2022年初级会计职称考试经济法基础练习题及答案
  6. C# WinForm中Show与ShowDialog
  7. C语言 strncpy函数实现
  8. Android特色开发(3):Google Map
  9. 公司产品手册的编写方法
  10. 【OpenCV】获取轮廓(连通域)的面积、周长、矩形度、圆形度、宽长比、周径比