gpt4 book ai didi

ruby-on-rails - ruby RestClient 中的 curl 请求

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:47 25 4
gpt4 key购买 nike

fastbill API 在其文档中声明发出此 curl 请求以接收信息:

curl -v -X POST \ 
–u {E-Mail-Adresse}:{API-Key} \
-H 'Content-Type: application/xml' \
-d '{xml body}' \
https://my.fastbill.com/api/1.0/api.php

使用 RestClient我尝试将其转换为类似 ruby​​ 的请求:

我是怎么读的:- 向 https://my.fastbill.com/api/1.0/api.php 发出帖子请求使用基本身份验证并在 header 中说明内容类型,正确吗?

现在这将是 RestClient 中基于资源的请求,如下所示:

首先我进行身份验证:

resource = RestClient::Resource.new( 'https://my.fastbill.com/api/1.0/api.php', 'my@email.de', 'API-KEY-XXXXX' )

它有效并授权我。然后将我的请求放入:

xml = '<?xml version="1.0" encoding="utf-8"?><FBAPI><SERVICE>customer.get</SERVICE><FILTER/></FBAPI>'

resource.post xml, content_type: 'application/xml'

它总是返回 400,我不知道还能在这里做什么。

此外,json 在这里如何工作?

resource.post param1: 'value', content_type: 'json'

很明显。

最佳答案

您可以使用 Restclient::Request.execute。 400 错误通常表示 recipeint 不理解请求。这可能是由 header 或格式错误的数据引起的。您可能需要添加接受 header 。试试下面的例子

require 'rest_client'

RestClient::Request.execute(
method: :post,
user: 'api_user@example.com',
password: 'pass123',
url: "https://example/users.json",
headers: {content_type: :json, accept: :json},
payload: { 'user' => { 'name' => 'John Doe', 'email' => 'john.doe@example.com'} }.to_json,
)

您可以找到详细的选项列表 here

关于ruby-on-rails - ruby RestClient 中的 curl 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36602588/

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