一个是工作(字符串url),另一个是在Oauth中给我一个无效的签名失败。
$whaturl=$endpoint.'?'.$link_string.'&oauth_signature='.$signature;
$newVenueXML = simplexml_load_file($whaturl) or die ("Error: Cannot create object");
和
$newVenueXML = simplexml_load_file('http://api.eventful.com/rest/venues/new?address=1101%20Grand%20Ave&app_key=my_app_key&city=Grand%20Lake&country=United%20States&name=Sagebrush%20Barbecue%20and%20Grill&oauth_consumer_key=my_consumer_key&oauth_nonce=718522065&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1474394973&oauth_token=my_token&oauth_version=1.0&postal_code=80447®ion=Colorado&oauth_signature=nfOiJ1R7X%2Bw4d9I%2FY4duZ62TeFw%3D') or die ("Error: Cannot create object");
组件都是相同的(即尽管我使用https://text-compare.com/告诉我的字符串是相同的)。我必须遗漏一些东西,因为使用变量不起作用而纯字符串是。
当我在浏览器中粘贴$ whaturl时,我得到了正确的回复。
现在,当我从正确的提交中复制并粘贴地址栏,然后比较两个字符串($ whaturl和地址栏的复制/粘贴中的URL,$ whaturl2)时,我看到了差异,当我回显两个变量,其中& region =变成了®ion=是否有可能在simplexml_load_file中发生同样的翻译,从而使我的$签名无效?
如果是这样,有关如何处理此事的任何建议,因为我已经逃过了&?
答案 0 :(得分:0)
这是通过使用http_build_query方法和&
作为$ arg_seperator来解决的。