HttpWebRequest 를 이용한 POST 전송 문제 질문드립니다.

소스를 어떻게 접두사 붙여야 하는지 까먹었습니다.
양해 부탁 드립니다.

아래와 같은 소스이고 API 주소는 잘 동작합니다.
이미 예전에 잘돌아 갔던 소스라고 하였고 구글링 보니깐 토시 하나 안틀리고 똑같더라고요.

그런데 meta 파라미터값은 원래 json구문인데 POST값이 안넘어와서 이거 문제인가 해서
아래처럼 강제로 meta=meta~ 이렇게 했습니다.

그런데도 데이타가 안넘오옵니다. ㅠㅠ 해당 페이지에서 Response 를 넘기면 제대로 됩니다.
제가 뭘 빠뜨린 경우가 있는것인가요?

public string WebRequestJson(string url, string postData)
{
    string ret = string.Empty;
    byte[] byteArray = Encoding.UTF8.GetBytes(postData);
    var webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;

    if (webRequest != null)
    {
        webRequest.ContentType = 
            "application/x-www-form-urlencoded; charset=UTF-8";
        webRequest.ContentLength = byteArray.Length;
        webRequest.Method = "POST";
        Stream dataStream = null;

        try
        {
            dataStream = webRequest.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);

            // Close the Stream object.
            dataStream.Close();
        }
        catch (WebException we)
        {
        }
    }
    HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse();
    Stream resStream = resp.GetResponseStream();
    StreamReader reader = new StreamReader(resStream);
    ret = reader.ReadToEnd();

    return ret;
}

API단 웹소스

<?php    
    $metaInfo   = $_REQUEST['meta'];
    $type       = $_REQUEST['responseType'];
echo type; // ㅠㅠ 출력이 안됩니다.
?>

질문을 이해하기가 너무 어렵습니다…
이 글을 읽는 사람의 입장으로 다시 한번 생각을 정리해주시면 감사할 것 같아요.

좋아요 2

직접 테스트해보지는 않았지만 JSON 문자열이 아마도 다중라인일 것이고 ContentType이 application/x-www-form-urlencoded일 경우 다중라인에 의해 제대로 해석이 안될 겁니다. 보낼 문자열을 URL 인코딩 한 후 보내보세요.