2017-02-02 5 views
0

임 선택 System.String '\ 형식으로 변환하고, 내가 답례로 얻을 모두는 할 수 없습니다CURL 개체는 웹 사이트/서버에서 일부 응답을받을려고

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

내 PHP 코드 :

$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); 

가 나는 또한 알고, 메신저는 데이터 및 URL로 requestmaker.com 물마루하려고 할 때, 나는

내가 내 필드를 인코딩하지 건가요 ... 내가 원하는 응답을 얻을 원인이 무엇이겠습니까?

편집은 : 내가 발견

: requestmaker.com에서 일부 정보 :

요청 헤더를 보낸 :

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

요청 헤더를 받았다 :

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) 심지어 사이트가 &과 함께 세부 정보를 추가하도록 요청하고 있습니다. ATOR, 그 같은 경우가 늘 작동, 그리고 같은 오류가 발생합니다 : enter image description here

을하지만이 & 구분자없이이 보이는 경우, 그것을 작동합니다. 내가 보낸 방법을 알지 못한다. 테스트 페이지에서 백엔드 PHP를 일으킨다.

또한 필드를 보내지 않으면 동일한 오류가 발생합니다.

enter image description here

갱신 4 :

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

그 일을 할 것입니다 : 자신의 웹 사이트에서

, 나는 그들이 그것을 좋아 보내는 보았다? 흠.

'removeimages' => urlencode(false) 

그리고 그것은 아마해야합니다 :

+0

다른 시스템에서이 오류가 발생했습니다. 문자열을 기대하는 변수에 null (nothing)을 전달한다고합니다. 문의하는 시스템의 설명서를보고 이에 따라 POST를 변경하십시오. – Andy

+0

@Andy에게 감사하지만, 그들이 사용하는 시스템을 모른다. – maria

+0

업데이트 된 주제 @AndyC – maria

답변

0

나는

당신은이 ... 당신의 오류 "removeimages"매개 변수를 생각

'removeimages' => urlencode('false') 

URL는 부울 값을 인코딩 of false는 쿼리 문자열에 아무 것도 전달하지 않고 다른 끝에 null 값을 생성합니다.

+0

Im는 그 차이가 무엇이든 두려워했다. – maria

+0

@maria'curl_setopt ($ curl, CURLOPT_HTTPHEADER, array ('Content-Type : application/x-www-form-urlencoded')); ' –

+0

차이점이 없습니다. – maria