【问题标题】:http send get request and catch the responsehttp 发送获取请求并捕获响应
【发布时间】:2015-05-08 08:24:21
【问题描述】:

我正在编写一些发送...的代码。我不知道如何描述,因为我不是全职 php 程序员,技术和框架发展得非常快。

所以,我有一个代码...嗯,地址:

http://www.something.sk/something/CID=username&VS=012345&RURL=xxx

其中 xxx 是一件衣服,我可以在其中捕捉到来自该服务器的响应,但如果我要使用它对我来说毫无意义,但它不应该是空白的

file_get_contents(url_above)

所以,我的问题是:

1) 如何做到这一点? 2)在哪里?从该请求 url 中丢失,如果 api 想要 http 表单样式获取方法参数,看起来像 /index.php?id=blahblah&VS=012345 但它不是以这种方式工作的。 3)当我在浏览器网址栏上硬输入上面的网址时,它给了我一个错误:

Kohana_Request_Exception [ 0 ]: Unable to find a route to match the URI:

这毫无意义。另外,我不是服务器的所有者,响应应该是这样的:

STATUS=ok&CODE=687629

4) 那么,再一次,如何正确编码以发送和捕获响应?或者如何在谷歌上找到,因为我不知道如何命名。我看过一些帖子和 php doc,但他们使用 'file_get_contents' 方法是最安全的

请帮忙,非常感谢。

【问题讨论】:

  • 您能否详细说明您要完成的工作?对我来说似乎有点模糊。
  • 嗯,这对我来说也很模糊,但我想从接受 get-method 请求的服务器获取响应。
  • 如果您想从 GET 请求中获取“CID”值,您可以在 PHP 中执行:$cid = $_GET['CID'];

标签: php http get request response


【解决方案1】:

我还没有完全理解你的问题,但这是我的答案:
您是否将值存储在数据库中?
如果是这样,请使用地址的 xxx 部分中的值的 ID。
此外,如果用户输入的 id 不存在,请使用 try/catch(或其他类似显示 error.html 页面的内容)向用户显示相应的错误,以免他们感到困惑。
如果您在 <a> 标签中链接产品,它应该如下所示:

<a href:"http://www.something.sk/something/CID=username&VS=012345&RURL='id comes here'">Dress</a>

如果这对您没有帮助,请随时告诉我。

【讨论】:

    【解决方案2】:

    刚刚注意到这一点,您正在向服务器发送页面请求,而不是获取请求。 您可以通过以下方式更改您的网址来帮助解决此问题:

        http://www.something.sk/something/CID=username&VS=012345&RURL=xxx
    

        http://www.something.sk/something?CID=username&VS=012345&RURL=xxx
    

    然后在 PhP 中获取文件(我看到你使用的是 Kohana,所以如果你使用的是 3.3)

        $cid = $this->request->get('cid');
        $vs = $this->request->get('vs');
        $rurl = $this->request->get('rurl');
    

    或者如果您不使用 kohana:

        $cid = $_GET['cid'];
        $vs = $_GET['vs'];
        $rurl = $_GET['rurl'];
    

    【讨论】: