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
我尝试将其转换为类似请求的红宝石:
我怎么看这个: - 使用基本身份验证向https://my.fastbill.com/api/1.0/api.php发帖请求,并在标题中说明内容类型,是否正确?
现在这将是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'
很明显。
答案 0 :(得分:0)
您可以使用Restclient :: Request.execute。 400错误通常表示recipeint不理解请求。这可能是由标头或格式错误的数据引起的。您可能需要添加accept标头。试试下面的例子
require 'rest_client'
RestClient::Request.execute(
method: :post,
:user => 'api_user@example.com',
:password => 'pass123',
url: "https://example/user.json",
payload: { 'user' => { 'name' => 'John Doe', 'email' => 'john.doe@example.com'} }.to_json,
headers: {:content_type => :json, :accept => :json}
)
的详细列表
答案 1 :(得分:-3)
$url="https://my.fastbill.com/api/1.0/api.php";
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
print_r(json_decode($result));