2016-04-13 15 views
0

Die Fastbill API stellt in seiner Doku diese curl Anfrage um Informationen zu erhalten, zu machen:curl Anfrage in rubin RestClient

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 

Mit RestClient Ich habe versucht, diese in eine rubin wie Anfrage zu übersetzen:

Wie lese ich das: - eine Post-Anfrage an https://my.fastbill.com/api/1.0/api.php mit grundlegenden Authentifizierung und Angabe der Inhaltstyp in der Kopfzeile, richtig?

Nun wäre dies eine Ressource basierend Anfrage in RestClient so aussehen:

Zuerst habe ich authentifizieren:

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

, die mich arbeitet und autorisiert. setzt dann meine Anfrage in:

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

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

Es gibt immer 400 und ich weiß nicht, was sonst noch zu tun.

Auch wie würde Json hier arbeiten?

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

wäre offensichtlich.

Antwort

0

Sie können Restclient :: Request.execute verwenden. 400 Fehler weisen normalerweise darauf hin, dass die Anfrage von der Rezeptur nicht verstanden wurde. Dies könnte durch Header oder fehlerhafte Daten verursacht werden. Möglicherweise müssen Sie den Akzeptieren-Header hinzufügen. Versuchen Sie das folgende Beispiel

require 'rest_client' 

RestClient::Request.execute(
    method: :post, 
    :user => '[email protected]', 
    :password => 'pass123', 
    url: "https://example/user.json", 
    payload: { 'user' => { 'name' => 'John Doe', 'email' => '[email protected]'} }.to_json, 
    headers: {:content_type => :json, :accept => :json} 
) 

Sie eine detaillierte Liste der Optionen finden here

-2
$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)); 
+0

Um ... ist dieser Rubin? – Pang

+0

warum? Warum hast du das getan? – Hamdan