所以这似乎是一个常见的错误,但我已经尝试了所有的东西,它只是不起作用!
我的代码目前看起来像这样:
$apikey = "XXXXXXXXX";
$search_url = "https://www.googleapis.com/shopping/search/v1/public/products?key=$apikey&country=US&q=$item_title&restrictBy=gtin&alt=json";
$response = file_get_contents($search_url);
我已经尝试了从urldecode到html_entity_decode / encode的所有内容,以及我能找到的所有解决方案,但仍然会遇到同样的错误:
file_get_contents(https://www.googleapis.com/shopping/search/v1/public/products?key=XXXXX&country=US&q=THESTRING&restrictBy=gtin&alt=json) failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request
正如你所看到的,而不是普通的& (&符号)我得到& amps
我记得有类似的问题,而问题只是我在字符串的开头没有“http://”。但正如你所看到的,情况并非如此。
谢谢!
答案 0 :(得分:0)
你试过单引号,所以你的测试字符串会被字面上理解吗?如在
$search_url = 'https://www.googleapis.com/shopping/search/v1/public/products?key='.$apikey.'&country=US&q=$item_title&restrictBy=gtin&alt=json';
答案 1 :(得分:0)
尝试从参数中删除空格,例如:
search_jobs.php?catagory_select=1&keys=head of IT
在IT"
这个词之间留出空格时,它无法正常工作search_jobs.php?catagory_select=1&keys=head-of-IT
我用" - "取代了空间。破折号及其现在正在运作。
如果您认为您需要在脚本中进行大量更改以替换所有空格,那么这就是在我打开页面时打开页面的快捷方式:
" search_jobs.php?catagory_select = 1& keys = IT负责人"
现在自动从参数" IT负责人"您需要在加载页面上添加javascript代码" search_jobs.php "
<script>
if(location.href.indexOf('%20') > -1){
location.href = location.href.replace('%20','-');
}
</script>
在页面顶部添加此代码,它将用&#34; - &#34;替换空格在打开页面之前自动破折号。
谢谢
答案 2 :(得分:-1)
我的问题的答案很简单:
当$ item_title包含空格时,PHP引发了错误。要解决这个问题,我所要做的就是将其添加到我的代码中:
strtr( $item_title, " ", "+" );
将空格更改为加号。没有更多失败的请求!
谢谢你们。