gpt4 book ai didi

coldfusion - 使用 cfhttp 的 addParam 方法向 HTTP 请求添加 header

转载 作者:行者123 更新时间:2023-12-03 17:47:51 25 4
gpt4 key购买 nike

我是 Coldfusion 的新手,不明白为什么在使用 cfhttp 发出的 http 请求中添加几个 header 时遇到这么多麻烦。我正在尝试使用 cfscript 编写请求,从我读过的所有内容中,我应该能够简单地做到:

httpService.addParam(type="header", name="Content-Type", value="application/json");

或者
httpService.addParam(type="header", name="Authorization", value=local.authPasscode);

但传出请求似乎不包含这些 header 。我可以说它不起作用,因为:
  • 我的回复中出现错误
  • 我正在做 writeDump(GetHttpRequestData()) ,它显示了请求的所有详细信息(并且此输出根本不显示 Authorization header ,并将 Content-Type header 显示为:

  • multipart/form-data; boundary=----WebKitFormBoundaryZs9TyOQV02N3fQop



    我似乎也很难以类似的方式添加邮件正文,所以我认为我在 addParam() 上做错了什么.我正在尝试这样:
    httpService.addParam(type="body", value="hello");

    同样,我得到的响应有一堆丢失的字段错误和 writeDump(GetHttpRequestData()) 的输出。显示一个失踪的 body 。

    我应该能够使用 addParam()这样?

    完整代码:
        httpService = new http();
    httpService.setMethod("POST");
    httpService.setUrl(application.config.beanstream.postURL);

    local.authPasscode = "Passcode " & ToBase64(application.config.beanstream.merchantid & ":" & application.config.beanstream.APIPasscode, "utf-8");

    // Set headers.

    httpService.addParam(type="header", name="Authorization", value=local.authPasscode);
    httpService.addParam(type="header", name="Content-Type", value="application/json");

    // Construct the message body.

    local.body = {
    "test": "hello"
    };

    httpService.addParam(type="body", value=SerializeJSON(local.body));

    writeDump(GetHttpRequestData());

    local.result = httpService.send().getPrefix();

    更新:

    好的,所以我改变了我的 postURL到另一个本地页面,在那个页面上我正在使用 GetHttpRequestData()将方法、协议(protocol)、 header 和内容全部记录到文件中。这是我得到的:
    POST
    HTTP/1.1
    {host={www.mysite.com},user-agent={ColdFusion},connection={close},content-length={16},authorization={Passcode Mjc1ODMwMDAwOjIwMTI5NGUwMjI2MzQxMzlBZjBFMDE2RmViRjg0RDAz},content-type={application/json}}
    {"test":"hello"}

    因此,在我看来,我确实正确地将 POST 发送到正确的 URL,并且 header 也设置正确。我的内容甚至看起来就在那里,所以这开始让人感觉我正在向 API 发送无效的正文数据。除非有人能想到任何其他检查,否则我将进一步调查。

    最佳答案

    代替

    local.body = {
    "test": "hello"
    };

    尝试
    local.body = {};
    local.body["test"] = "hello";

    那么你就可以
    SerializeJSON(local.body)

    关于coldfusion - 使用 cfhttp 的 addParam 方法向 HTTP 请求添加 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29628432/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com