2017-02-02 3 views
0

Im 'versucht, einige Antwort von einer Website/Server zu empfangen, und alles, was ich im Gegenzug ist:ROTATION Objekt vom Typ ‚System.DBNull ‘ kann nicht konvertiert werden, um Typen System.String

System.ArgumentException','Object of type \'System.DBNull\' cannot be converted to type \'System.String 

meine PHP-Code:

$url = 'website'; 
$fields = array('searchstring' => urlencode('solkrem'), 'menuID' => urlencode(0), 'genses' => urlencode('20170201178577A2F54'), 'removeimages' => urlencode(false)); 

function httpPost($url, $data) 
{ 
    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($curl); 
    curl_close($curl); 
    return $response; 
} 

echo "<br><br>"; 

$result = httpPost($url,$fields); 

var_dump($result); 

ich weiß auch, wenn im Versuch, durch sie requestmaker.com mit den Daten und uRL, bekomme ich die Antwort, die ich wollte ...

bin ich meine Felder nicht kodiert richtig, oder was könnte die Ursache sein?

EDIT: ein paar Informationen von requestmaker.com:

Anfrage Header gesendet:

POST xxxxx HTTP/1.1 
Host: xxx.com 
Accept: */* 
Content-Type: text/html 
Content-Length: 75 

Request-Header empfangen:

HTTP/1.1 200 OK 
Date: Thu, 02 Feb 2017 14:03:20 GMT 
Server: Microsoft-IIS/6.0 
X-Powered-By: ASP.NET 
X-AspNet-Version: 4.0.30319 
Cache-Control: private 
Expires: Thu, 02 Feb 2017 14:03:19 GMT 
Content-Type: text/html; charset=utf-8 
Content-Length: 58300 

EDIT 3:

Ich fand heraus, sogar, dass die Seite mich bittet, die Details mit dem & seper hinzuzufügen ator, es funktionieren wird nicht, wenn sein wie diese, und es wird denselben Fehler erzeugen: enter image description here

Aber wenn es so aussieht, ohne die & seperator, es funktioniert. Ich weiß nicht, wie es gesendet wurde, denn sein Backend-PHP auf der Testseite.

Auch, wenn ich keine Felder sende, gibt es die gleiche Ausgabe wie der Fehler, den ich habe.

enter image description here

Update 4:

von ihrer Website, ich sah sie senden es mögen:

'searchstring=solkrem\r\nmenuID=0\r\ngenses=20170201178577A2F54\r\nremoveimages=false 

würde, dass etwas tun? hmm.

+0

Dieser Fehler wird vom anderen System generiert. Es besagt, dass Sie in einer Variablen, in der eine Zeichenfolge erwartet wird, eine Null (nichts) übergeben. Sehen Sie sich die Dokumentation des von Ihnen kontaktierten Systems an und ändern Sie Ihren POST entsprechend. – Andy

+0

danke @Andy, aber ich weiß nicht, welches System sie verwenden. – maria

+0

aktualisiertes Thema @AndyC – maria

Antwort

0

Ich denke, Ihre Fehler mit dem "removeimages" Parameter ...

Sie haben:

'removeimages' => urlencode(false) 

Und es sollte wohl sein:

'removeimages' => urlencode('false') 

URL einen Booleschen Wert kodiert von false übergibt nichts in der Abfragezeichenfolge und erstellt am anderen Ende einen Nullwert.

+0

Ich fürchte, dass das keinen Unterschied machte. – maria

+0

@maria Versuchen Sie, 'curl_setopt ($ curl, CURLOPT_HTTPHEADER, Array ('Inhaltstyp: application/x-www-form-urlencoded'));' –

+0

Kein Unterschied ich habe Angst: | – maria

Verwandte Themen