2017-02-21 7 views
0

Ich habe Probleme mit cURL innerhalb von PHP. Ich bin nicht sicher, was ich tun muss, um dies zu übersetzen:"Übersetzen" cURL zu PHP

in PHP, um es dort auszuführen.

Das ist alles, was ich bisher bekommen habe, aber ich fühle mich wie ich nicht einmal in der Nähe bin:

$url2 = 'https://watson-api-explorer.mybluemix.net/personality-insights/api/v3/profile?raw_scores=false&csv_headers=false&consumption_preferences=true&version=2017-02-01'; 
$request_headers = array(); 
$request_headers[] = 'Accept: application/json'; 
$request_headers[] = 'Content-Type: text/plain'; 
$request_headers[] = 'Content-Language: en'; 
$request_headers[] = 'Accept-Language: en'; 

$ch2 = curl_init($url2); 
curl_setopt($ch2, CURLOPT_POST, 1); 
curl_setopt($ch2, CURLOPT_POSTFIELDS, $myvars2); 
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch2, CURLOPT_HEADER, $request_headers); 
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); 
$response2 = curl_exec($ch2); 
var_dump($response2); 
+1

Eigentlich sind Sie ziemlich nah dran. Sie vermissen nur das Authentifizierungsstück von dem, was ich sehe. Welche Ausgabe erhalten Sie vom obigen Skript? – JakeParis

+0

Das ist das Stück, in dem ich denke, dass ich feststecke. Ich weiß nicht was '-u' ist und wie man das in PHP" übersetzt ". Ich habe die Header herausgefunden, aber das wars – jonmrich

Antwort

3

Es sieht aus wie Sie die Authentifizierung Stück gerade fehlen:

curl_setopt($ch2, CURLOPT_USERPWD, "yourUsername:yourPassword"); 

Überprüfen Sie die manual. Auch können Sie es auf diese Weise tun, die ein wenig einfacher sein kann:

curl_setopt_array($ch2, array(
    CURLOPT_POST => 1, 
    CURLOPT_POSTFIELDS => $myvars2, 
    CURLOPT_FOLLOWLOCATION => 1, 
    CURLOPT_HEADER => $request_headers, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_USERPWD => 'yourUsername:yourPassword' 
); 
+0

Super hilfreich ... Danke. Ich bin jetzt authentifiziert, aber ich muss die Daten falsch übergeben. Das ist das erste bisschen was ich brauche: 'curl -X POST --header 'Inhaltstyp: text/plain' --header 'Akzeptieren: application/json' --header 'Content-Language: de' --header 'Accept-Language: en' -d 'EIN BUNT DES PLAIN TEXT HIER'' Ich habe alles außer dem '-d' Teil. Was ist der "Befehl" dafür? – jonmrich

+0

Hier ist Ihr -d: https://curl.haxx.se/docs/manpage.html#-d – JakeParis

+0

@jonmrich Was müssen Sie über diesen Parameter senden? – JakeParis