首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式将curl请求体包含在edgeSDK微服务的http请求中

以编程方式将curl请求体包含在edgeSDK微服务的http请求中
EN

Stack Overflow用户
提问于 2020-02-11 19:50:25
回答 1查看 211关注 0票数 2

我正在尝试将一个小型edgeSDK微服务操作组合在一起,该操作以编程方式将一个主体添加到它发出的http请求中,这样用户就不必作为curl命令的一部分手动执行它。目前,如果我在终端执行,例如

代码语言:javascript
复制
curl -d '{"jsonrpc": "2.0", "method": "getMe", "params": [""]}' http://localhost:8083/<BASE_API_PATH>/doStuff

作为API请求,它可以正常工作,但是如果我输入

代码语言:javascript
复制
curl http://localhost:8083/<BASE_API_PATH>/doStuff

并尝试让操作的代码以编程方式添加

代码语言:javascript
复制
{"jsonrpc": "2.0", "method": "getMe", "params": [""]}

到目前为止,http请求对象只返回了一个404未找到的错误。是否有一种以编程方式添加主体的方法,还是将其包含在终端的curl命令中是包含主体的唯一方法?

以下是(或多或少)我的代码,用于尝试使微服务操作的这一部分正常工作。我尝试过将主体分配给request.body和传递给context.http.request()的对象中的data作为字符串和JSON对象的各种排列。最近的迭代在下面的代码中注释掉了。

代码语言:javascript
复制
app.post('/doStuff', (request, response) => 
{
    //const body = JSON.stringify(JSON.parse('{"jsonrpc": "2.0", "method": "getMe", "params": [""]}'));
    //const body = JSON.stringify({"jsonrpc": "2.0", "method": "getMe", "params": [""]});
    //const body = '{"jsonrpc": "2.0", "method": "getMe", "params": [""]}';
    //const body = {"jsonrpc": "2.0", "method": "getMe", "params": [""]};

    //request.body = body;

    context.http.request((
    {
        type: 'POST',
        //data: body,
        url: 'http://localhost:8083/jsonrpc/v1',
        success: function(r) 
        {
            //TODO: stuff

            response.end('Finally, it works');
        },
        error: function(err) 
        {
            response.end(err.message);
        }
    }));
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-11 20:01:35

你能试试:

代码语言:javascript
复制
    curl -X POST http://localhost:8083/<BASE_API_PATH>/doStuff

因为它是POST请求,所以没有显式HTTP方法的curl可能无法工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60176363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档