【问题标题】:Get and Send file with PHP and RESTful API使用 PHP 和 RESTful API 获取和发送文件
【发布时间】:2016-02-25 15:54:26
【问题描述】:

我的一个合作伙伴有一个 API 服务,它应该在发布新文件时发送一个 HTTP POST 请求。这需要我有一个 api 文件,它将以这种方式获取 POST:

http://myip:port/api/ReciveFile

请求JSON格式的请求应该是:

{
    "FILE ":"filename.zip",
    "FILE_ID":"123",
    "FILE_DESC":"PRUPOUS_FILE",
    "EXTRAVAR":"",
    "EXTRAVAR2":"",
    "USERID":" xxxxxxxxxxxx",
    "PASSWORD":"yyyyyyyyyyy"
}

同时它应该以 JSON 格式发出响应(如果它得到文件)

{"RESULT_CODE":0,"RESULT_DESCR":""}
{"RESULT_CODE":1001,"RESULT_DESCR":"Bad request"}

然后,当我完成文件的详细说明后,我应该以同样的方式发回修改后的文件。

问题是,现在基本上据我了解,他会将我必须阅读的变量发送给我,下载文件,然后发回响应。

我不确定如何执行此操作,欢迎任何示例代码!

【问题讨论】:

  • 你有什么问题?
  • 好吧可能看起来很愚蠢,但我不知道该怎么做.. @AnthonyGarcia

标签: php json api http


【解决方案1】:

我不确定问题到底是什么,但如果您的意思是在 JSON 中创建一个成功响应,以了解在向其中添加数据时是否发生了操作,这可以从问题中理解,只需创建一个数组,其中包含您希望发送回提供者的值并在应该创建 json 的数组上执行 json_encode 并将其作为响应打印回来。

关于接收信息;您所要做的就是使用集成的 curl 函数或使用包装器(Guzzle 等)将原始 JSON 或 json_decode 数据输出到变量中,然后随心所欲地使用它。

根据我在问题中读到的内容,您希望修改它的内容。这可以通过解码 json 并更改数组中的变量来实现,然后将修改后的 JSON 作为响应打印回来。

示例(这里以 GuzzleHTTP 为例):

$res = $client->request('GET', 'url');
$json = $res->getBody();
$array = json_decode($json, 1); // decode the json
// Start modifying the values or adding
$array['value_to_modify'] = $whatever;
$filename = $array['filename']; // get filename
// make a new request
$res = $client->request('GET', 'url/'.$filename);
// get the body of specified filename
$body = $res->getBody();
// Return the array.
echo json_encode($body);

参考资料:

http://docs.guzzlephp.org/en/latest/

【讨论】:

  • 是的,问题是我不知道如何存档,如果你能给我一个实际的例子,我可以效仿它会非常好@sergio-e-diaz
  • @BlediShehu 我稍后会尝试给出一个伪代码示例。
  • 主要思想是他正在向我发送 json 格式的文件名,如果一切顺利,我必须下载它并发送响应,在请求中应该有用户并传递给我想想@sergio-e-diaz
猜你喜欢
  • 1970-01-01
  • 2014-05-02
  • 2011-11-03
  • 1970-01-01
  • 2022-10-06
  • 1970-01-01
  • 2015-04-22
  • 2014-09-16
  • 1970-01-01
相关资源
最近更新 更多