2016-09-19 14 views
1

私はクライアントのためにloader.ioを評価していますが、APiが正しく動作するように問題があります。私はPHP 7になっています。 http://docs.loader.io/api/v2/post/tests.html#url-optionsLoader.io - PHP、curl、json

私は 'create test'に固執しています。

ドキュメントは言う:

curl -X POST -H 'loaderio-auth: API_KEY' -H 'Content-Type: application/json' --data-binary '{"test_type":"cycling",    "total": 6000,    "duration":60,    "urls": [     {"url": "http://gonnacrushya.com"} ]}' https://api.loader.io/v2/tests 

素晴らしいこと! APiキーと正しいURLを追加すると、うまく動作し、テストが作成されます。

Buuuut ..

私はSymfony2のアプリを経由してAJAXでこれをやりたいです。

urls param has incorrect format 

function myAjaxCalledFunction() { 
    $test_data = '{"test_type":"cycling", "total": 10, "duration":5, "urls": [{"url": "http://www.my-configured-url.com"}] }'; 
    return $this->doCurlRequest('tests', 'POST', $test_data); 
} 


public function doCurlRequest($what_call, $request = 'GET', $post_data = null) 
{ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'https://api.loader.io/v2/' . $what_call); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('loaderio-auth: ' . $this->loader_api_key)); 

    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POST,   1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,  $post_data); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json')); 
    $response = curl_exec($ch); 
    return new Response($response); 
} 

私が欠けているしますcurl_setopt()があります。ここでは

は、私はそれがエラーを返すだ持っている何ですか?

+0

を私はそのリストのテスト、実行するテストを... AJAX経由ですべての作業と機能(私はいくつかのそれの$のpost_dataが設定されている取り出した上記を指摘しなければなりませんここでは単純化のためのコード) – Beertastic

答えて

1

オプションCURLOPT_HTTPHEADERを2回設定しています。それが最初のものを無視している理由です。あなたが例以下のような配列にそれらの両方をプッシュすることができます:

curl_setopt($ch, CURLOPT_HTTPHEADER, 
    array('loaderio-auth: ' . $this->loader_api_key, 
      'Content-type: application/json'));