我的一个合作伙伴有一个API服务,每当发布新文件时都应该发送HTTP POST请求。这需要我有一个api文件,这将以这种方式获得POST:
(defn atomic-apache-peak-value [x]
(let [lamb ((x :parameters) 0)
x0 ((x :parameters) 1)
f (D2Sigmoid. lamb x0)
optimizer (BrentOptimizer. 0.0001 0.0001)
maxeval (MaxEval. 1000)
of (UnivariateObjectiveFunction. f)
goal GoalType/MINIMIZE
interval (SearchInterval. x0 (* 2 x0))]
(-> (.optimize optimizer (into-array OptimizationData [maxeval of goal interval]))
(.getPoint))))
并请求JSON格式请求应为:
http://myip:port/api/ReciveFile
同时它应该以JSON格式发出响应,如果它有文件
{
"FILE ":"filename.zip",
"FILE_ID":"123",
"FILE_DESC":"PRUPOUS_FILE",
"EXTRAVAR":"",
"EXTRAVAR2":"",
"USERID":" xxxxxxxxxxxx",
"PASSWORD":"yyyyyyyyyyy"
}
之后,当我完成文件的详细说明后,我应该以同样的方式发送修改后的文件。
问题是,现在基本上从我的理解,他将向我发送我必须阅读的变量,下载文件,然后发送回复。
我不确定如何做到这一点欢迎任何示例代码!
答案 0 :(得分:0)
我不确定问题究竟是什么,但如果你的意思是在JSON中创建一个成功响应,如果在向其添加数据时发生了一个动作,这可以从问题中理解,只需创建一个数组即可。您希望发送回提供程序的值,并在数组上执行json_encode
,该数组应创建json并将其作为响应打印回来。
关于接收信息;您所要做的就是使用集成的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);
参考文献: