2010-06-25 7 views
0

WebService에서 반환 된 Json을 디코드하려고하는데 다음 WebService API를 호출하는 데 사용할 쿠키를 설정해야합니다. 나는 쿠키를 설정하는 방법을 모르며이 json을 해독합니다.PHP에서 json_decode가 쿠키를 설정합니다.

디코딩을 시도했지만 오류가 발생했습니다. sessionId를 추출해야합니다. 당신은 WebService를 사용할 수 있습니다 .. 나는 이것을 인터넷에 넣었습니다.

여기에 쿠키를 설정하려면 코드 샘플

<?php //extract data from the post 
     extract($_POST); //set POST variables 
     $url = 'http://202.83.243.119/ems/loginByEID.json'; 
     $fields = array(
        'eid'=>urlencode("7ea888b6-36e9-49db-84f3-856043841bef") 
       ); 
     //url-ify the data for the POST 
     foreach($fields as $key=>$value) { 
     $fields_string .= 
     $key.'='.$value.'&'; } 
     rtrim($fields_string,'&'); 

     //open connection $ch = curl_init(); 

     //set the url, number of POST vars, 
     POST data 
     curl_setopt($ch,CURLOPT_URL,$url); 
     curl_setopt($ch,CURLOPT_POST,count($fields)); 
     curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 

     //execute post $result = 
     curl_exec($ch); 

     //close connection curl_close($ch); 
     //decoding Json $obj = 
     json_decode($result); 

     print $obj->{'stat'}; 

     ?> 

답변

4
  1. 사용 setcookie()입니다.
  2. 전염병처럼 extract()을 피하십시오. 클라이언트 지정 변수를 코드에 도입하는 데 사용할 수 있습니다.
  3. $fields_string = http_build_query($_GET)을 사용하여 위의 호지 대신에 쿼리 문자열을 작성하십시오.
  4. 코드를 올바르게 포맷하십시오. 예를 들어, 앞의 주석 행에 $obj =을 넣습니다.
+1

(3)에 대해서는 CURLOPT_POSTFIELDS 옵션도 연관 배열을 허용하므로 쿼리 문자열을 전혀 작성할 필요가 없습니다. –

+1

감사합니다. Janmoesen/Daniel. 나는 setcookie()가 작동하지 않을 것이라고 생각한다. 웹 서버에서 웹 서버로 통신하고 Curl 함수는 매우 잘 작동하기 때문이다. 답변 : http://www.daniweb.com/forums/thread78356.html – Ajay

+0

아직도 json을 구문 분석 할 수있는 좋은 방법을 찾고 있습니다. var_dump가 작동합니까? 감사합니다, Ajay – Ajay

관련 문제