【问题标题】:Cakephp hanging after post request via httpsocket containing json dataCakephp在通过包含json数据的httpsocket发布请求后挂起
【发布时间】:2014-11-26 14:27:33
【问题描述】:

目前我正在处理 cakePHP 中的 http post 请求。

我正在使用下面的代码与需要授权的外部 API 进行通信。 问题是,只要我添加带有 JSON 上下文的正文,整个应用程序就会挂起。它在浏览器中永远加载,不会返回任何结果。必须停止并启动 Apache 才能恢复正常。在不同的机器上测试,效果一样。

如果我不发送 (JSON) 正文,我显然会收到 500 服务器错误,但它告诉我授权正在工作,否则我会得到未经授权的。

如果我对同一个 API 发出“GET”请求,它工作正常并返回结果。 JSON 语法很干净,如果我使用 API 测试器处理变量和其他信息,它就可以工作 (https://apigee.com/console)。

更新:如果请求有效,它就会工作。但是,在 API 测试仪上,它给了我一个“400 Bad Request”。我需要在我的应用程序中处理它,但在这种情况下,上述情况正在发生。期望它返回错误。

$options = array( 
        'body' => $json_order,
        'header' => array(  
        'Authorization' =>'123456',
        'Content-Type' => 'application/json; charset=utf-8',
        ),

    );

    $result=$HttpSocket->post('https://<address>',null,$options);
    debug($HttpSocket->request);

如果我换一种方式,效果也一样

$options = array( 
        'header' => array(  
        'Authorization' =>'123456',
        'Content-Type' => 'application/json; charset=utf-8',
        ),

    );

    $result=$HttpSocket->post('https://<address>',$json_order,$options);
    debug($HttpSocket->request);

任何帮助将不胜感激!

【问题讨论】:

  • 我真的没有得到你的更新? o_O 你检查过你的服务器日志吗?还请提供一个完整的工作示例(包括所有数据,如果可能还包括 API URL)。 ps,请务必提及您的确切 CakePHP 版本!
  • 我使用的是 cakePHP 2.5.6。为您提供有关更新的更多详细信息:我尝试以低于产品价格的方式订购产品,因此有一个“错误请求”发回。在这种情况下,整个应用程序都会卡住。我正在调查这是否是远端的问题(不在我的控制之下)。如果做了其他导致“错误请求”的事情,它正在工作,我可以显示错误消息。

标签: php json cakephp post


【解决方案1】:

清除:问题在于远端没有正确响应错误代码。 =

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    相关资源
    最近更新 更多