微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 尝试使用cURL避免ASP.NET会话

我正在使用来自提供商的网络服务,该服务提供商在预测我的需求方面有点太有帮助.他们给了我一个HTML代码片段粘贴在我的网站上,供用户点击以触发他们的服务.我更喜欢编写这个过程的脚本,所以我有一个PHP脚本,它会根据需要将cURL请求发布到同一个url.但是,此提供程序会密切关注我的会话,并将每个新请求解释为第一个请求的更新,而不是每个请求都是唯一请求.

我已经就我的问题联系了提供商,他们已经告诉我他们的系统正在按预期工作,并且我不可能避免为每个后续的cURL请求使用相同的ASP.NET会话.虽然我最喜欢的选择是切换到不同的供应商,但这似乎不是一个选择.是否有可靠的方法获取每个cURL请求的新ASP.NET会话?

我尝试过以下一套CURLOPT,但无济于事:

//initialize curl 
$ch = curl_init($url); 

//build a string out of the post_vars
$post_str = http_build_query($post_vars);

//set the necessary curl options 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str); 
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "UZ_".uniqid());
curl_setopt($ch, CURLOPT_REFERER, CURRENT_SITE_URL."index.PHP?newsession=".uniqid());
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Pragma: no-cache", "Cache-Control: no-cache"));

//execute the call to the backend script, retrieve the results 
$xmlstr = curl_exec($ch);

解决方法:

如果cURL没有多大帮助,为什么不尝试其他方法从脚本调用服务,如PHP的file()函数或file_get_contents().

如果您看到根本没有看到任何差异,那么服务提供商可能正在使用您的IP来跟踪您的请求.尝试使用一些代理进行测试.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐