微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

POST 在与响应正文相同的请求中返回结果cpp REST POST SDK

如何解决POST 在与响应正文相同的请求中返回结果cpp REST POST SDK

解释我的问题的背景。我的应用程序通过 Flask 服务器连接到制造执行系统 ​​(MES)。我使用 Postman 调试我的工作。

我有一个监听 MES 的示例,当 MES 向我的应用程序发送 (POST) 订单时,我成功捕获它,将 JSON 解析为我自己的数据结构。我自己的算法来处理这个数据结构,结果需要作为JSON返回给MES。

当我使用两部分时,MES 发送一个 POST,当 MES 发送一个 GET 时,我捕获并返回结果,它工作正常。但是现在我被要求在没有 MES 的情况下自动返回结果向我发送 GET 请求,我想是为了加快处理流程,因为订单的大小可能会有所不同,我的算法对于小订单也可以很快,而对于大订单则需要更长的时间.

任何人都有一些例子可以说明我的情况或提供一些帮助。

我正在使用以下内容

http_client client(server_http_test);
try {
     HTTP_Request request_get(methods::GET);
     pplx::task<void> task = client.request(request_get)
    .then([](http_response response)-> pplx::task<web::json::value>
    {
    if(response.status_code() == RESPONSE_OK)
    {
       return response.extract_json();
    }
    else
    {
       return pplx::task_from_result(web::json::value());
    };
    }).then([](pplx::task<web::json::value> prevIoUsTask)

我使用 JSON 获取

if(!prevIoUsTask.get().is_null()) {
   //const web::json::value & json_value = prevIoUsTask.get();
   // Assign the requested Json value to a global variable
    j_value = prevIoUsTask.get(); // json_value;
}

然后我在将 j_value JSON 解析为我自己的数据结构后使用我的算法来处理它。现在这是我需要将结果返回到同一服务器(IP/端口)但没有任何 GET/POST 的地方......只是直接......我不知道如何实现......

然后我完成了试用部分

}
catch(const http_exception &e)
{
std::cout << "Response Json Value Level: Error exception: " << e.what() << std::endl;
}
});

我的 Flask 服务器由 python 脚本调用(从命令行作为 python rest_request_server.py)

@app.route('/DataTransfer',methods=['GET','POST'])
def datatransfer():

    global json_data

    if(request.method == 'GET'):
        print ("request.method = GET")
        return jsonify(json_data)

    #if(request.method == 'POST'):
    #   print ("request.method = POST")
    #   return jsonify(json_data_post)

    #if(request.method == 'POST'):
    else:
        print("request.method = POST")
        temp_data = request.get_json()
        if(temp_data != json_data):
            json_data = temp_data
            return "Input captured"
        else:
            return jsonify(json_data)
        #   return "Please send get request"

if __name__ == '__main__':
    app.run(host = ServerIP,port=ServerPort,debug=True,use_reloader=False)

解决方法

我最终只使用 Flask 服务器并直接调用我的打包优化器,而无需它通过 REST 进行通信……Flask 现在正确地将结果返回给 MES。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。