【问题标题】:Server to server communication with JSON and PHP使用 JSON 和 PHP 进行服务器到服务器通信
【发布时间】:2014-01-28 20:35:14
【问题描述】:

我想制作一个小的 PHP 脚本,它会定期检查 Web 应用程序。通信将仅以 json 格式进行。代码将在 Google App Engine 上运行。

第一个请求将是一个 HTTP POST 请求,其表单数据如下:username=user&password=pass

POST http://www.example.com/login HTTP/1.1 

如果登录失败,响应 json 将是:

{
    "message": "Failed login"
}

如果成功:

{
    "response": "OK",
    "username": "user",
    "protocol": "http"
}

后续请求将是包含 json 的 GET、POST 和 PUT 请求,并且响应将在 json 中。

此代码将由Google App Engine's Cron for PHP 每天运行一次。

由于我对PHP知之甚少,我想知道我应该如何实现它。

  • 如何向网络应用发出 http 请求。
  • 我如何记住从一个请求到另一个请求的登录/身份验证标头。
  • 如何在 PHP 中处理读取、写入和修改 json。

我只需要一个基本示例和指导方针即可开始。

提前谢谢你。

时间

【问题讨论】:

    标签: php json google-app-engine httprequest


    【解决方案1】:

    鉴于 GAE 目前不支持 cURL,我会推荐像 How do I send a POST request with PHP? 这样的方法。以后你也许可以使用类似Guzzle 的东西(如果GAE 增加了cURL 支持)。

    使用json_decode/json_encode 创建 JSON 以发送和解析响应。

    【讨论】:

      【解决方案2】:

      只是为了让您入门:cURLjson_decode/json_encode

      如果您的所有请求都在同一个脚本中,同时运行所有请求,您只需要使用 cURL 的 cookie 和 headers 选项。

      如有必要,我会将完整的示例留给其他人。

      此外,如果可能,您应该使用 HTTPS。无论服务多么微不足道,以明文形式发送用户名/密码绝不是一个好主意。

      编辑:GAE 似乎不支持 curl(感谢@boombatower),请查看:Replacing CURL with urlfetch in PHP

      【讨论】:

      • GAE 目前不支持 curl,但它很可能会支持。
      • 真的吗?好的,我链接到另一个可能有用的答案。
      猜你喜欢
      • 2014-03-18
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      相关资源
      最近更新 更多