Hey Guys, I am trying to get a query result with CURL but the response is always false. If I try it with my browser, I get a response (successfull query)
Heres what i have:
function curling($method, $params){
$query = http_build_query($params);
$url = $this->api_url . '/' . $this->api_version . '/search/' . $method .'?api_key='.$this->api_key .
'&language='. $this->language . "&" .$query ;
$ch = curl_init();
if ($ch) {
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FAILONERROR => true,
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Content-type: application/json'
) ,
));
if ($this->debug) {
error_log("DEBUG: Calling URL: {$url}");
}
if (!empty($data) && is_array($data)) {
if ($this->debug) {
error_log("DEBUG: POSTDATA: " . var_export($data, true));
}
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
}
$results[] = curl_exec($ch);
$results[] = curl_getinfo($ch);
curl_close($ch);
}
return $results;
}
$return[0] is always "false" A generated API key looks like this: https://api.themoviedb.org/3/search/movie?api_key=5bbc08[......]7f9d8c&language=de-DE&query=Iron+Man This key works in my browser I requested a token for my "application", but the Name of the App is not displayed in my account. I also think that isn't necessary?!
I don't have a V-Server or anything yet, I just want to develop at my local maschine (windows)
Thanks for your help!
Es fehlt ein Film oder eine Serie? Logge dich ein zum Ergänzen.
Diesen Eintrag bewerten oder zu einer Liste hinzufügen?
Kein Mitglied?
Antwort von Travis Bell
am 29. Januar 2017 um 11:38
Hi @exa.byte
Can you paste the entire response body and response headers? I have a feeling your answer lies there. If I was to guess, you're not constructing the request fully and it's throwing back an invalid API key response (status code 7).
Antwort von exa.byte
am 29. Januar 2017 um 11:40
Hi, WOAH, that was quick. Thank you. Heres the $result array
How do I format just an array corectly? The Function above was formatted automatically :/ sorry for the view
array(2) { [0]=> bool(false) [1]=> array(26) { ["url"]=> string(112) "https://api.themoviedb.org/3/search/movie?api_key=5b[....]f9d8c&language=de-DE&query=Iron+Man" ["content_type"]=> NULL ["http_code"]=> int(0) ["header_size"]=> int(0) ["request_size"]=> int(0) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(1) ["redirect_count"]=> int(0) ["total_time"]=> float(0.235) ["namelookup_time"]=> float(0) ["connect_time"]=> float(0.11) ["pretransfer_time"]=> float(0) ["size_upload"]=> float(0) ["size_download"]=> float(0) ["speed_download"]=> float(0) ["speed_upload"]=> float(0) ["download_content_length"]=> float(-1) ["upload_content_length"]=> float(-1) ["starttransfer_time"]=> float(0) ["redirect_time"]=> float(0) ["redirect_url"]=> string(0) "" ["primary_ip"]=> string(14) "54.243.147.233" ["certinfo"]=> array(0) { } ["primary_port"]=> int(443) ["local_ip"]=> string(12) "192.168.3.42" ["local_port"]=> int(52262) } }
Thank you so far
Antwort von Travis Bell
am 29. Januar 2017 um 11:44
Heh, unfortunately, that's not that useful. You should still be getting a response as it looks like the request completed. I want to see the response body.
I don't have any experience with PHP, I am just wanting to see the response you are getting back.
Antwort von exa.byte
am 29. Januar 2017 um 11:55
Hi, thanks for your help. The Response-Header would be just "false" I just found out the curl_error was "60" which is an SSL-Error. I changed the URL from https to http and now it works.
Thanks for your suggestion :)
Antwort von Travis Bell
am 29. Januar 2017 um 11:57
Glad you sorted it out!