2012-04-26 3 views
0

JSON에서 일부 클라이언트 - 서버 상호 작용을 시도했지만 서버에 게시하는 데이터가 도착하지 않았습니다. 내 PHP 스크립트의 $_POST 배열이 비어 있습니다.

방금 ​​WebRequest 예제를 MSDN에서 잡아 내고 테스트했습니다. 여전히 작동하지 않습니다. 또한 HTML 양식으로 일부 데이터를 게시하려고 시도했는데 제대로 작동합니다. 나는 완전히 비틀 거린다.

내 PHP에서 getallheaders() 전화

은 내가 위해서 var_dump ($ _ POST) 반환을하고 있지만
OK 
array(5) { 
    ["Content-Type"]=> 
    string(33) "application/x-www-form-urlencoded" 
    ["Host"]=> 
    string(9) "localhost" 
    ["Content-Length"]=> 
    string(2) "54" 
    ["Expect"]=> 
    string(12) "100-continue" 
    ["Connection"]=> 
    string(10) "Keep-Alive" 

을 얻을 배열 (0)

사람이 무엇을 제안 할 수 있습니까?

+0

아마도 C# 코드의 관련 부분을 게시하려고 시도 할 수 있으므로 문제가있는 곳을 확인할 수 있습니다. 지금은 한 가지만 말할 수 있습니다. - 분명히 "뭔가"잘못하고있는 것 같습니다. :) – walther

+0

요청을 처리하기 위해 프록시로 설정할 수 있습니다. 그러면 전송 된 것을 볼 수 있습니다. 코드. – dunston

답변

1

MSDN의 코드는 원시 문자열을 전송하므로 PHP는 필드에 브레이크하는 방법을 모르므로 $_POST에 넣습니다. file_get_contents('php://input')으로 POST 데이터를 가져올 수 있어야합니다. 당신이 필요로하는 경우, 항상

string postData="fieldName="+System.Web.HttpUtility.UrlEncode("The data that goes in the field"); 

: 당신이 데이터를 $_POST에 도착하려면

, 당신은 당신이 그것을 인코딩 같은 방법, 같은 방식으로 당신이 GET 매개 변수를 인코딩을 (인코딩해야 여러 필드 당신은 &의로 구분해야합니다.

+0

Idan, 당신은 절대 전설입니다. 매력과 훌륭한 설명처럼 일했습니다. 감사! –

+0

도움이 된다니 기쁘다. 그리고 나는 PHP를 모른다 ... –

0

사람들은 당신의 헤더입니다. 당신은 getallheaders의 결과에 POST 매개 변수를 기 대해서는 안()를 호출합니다. 당신은 내용 길이로 뭔가을 보내는 제안하다 54 b ytes. var dumping $ _REQUEST 매개 변수를 사용하여 다른 메소드로 제출 중인지 확인하십시오.

+0

현재 위의 MSDN 링크의 예제 코드를 사용하고 있습니다. –

관련 문제