使用c#将params设置为Web服务

时间:2016-11-20 13:00:24

标签: c# php

我无法将params设置为我的网络服务 这是我在php中的代码:

$myValue = $_POST['myValue'];

这是我的C#代码:

void POST(string url, string jsonContent)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";

    System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
    Byte[] byteArray = encoding.GetBytes("myValue=" + jsonContent);

    request.ContentLength = byteArray.Length;
    request.ContentType = @"application/json";

    using (Stream dataStream = request.GetRequestStream())
    {
        dataStream.Write(byteArray, 0, byteArray.Length);
    }
    long length = 0;
    try
    {
        //request.GetResponse();
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            length = response.ContentLength;
            using (Stream responseStream = response.GetResponseStream())
            {
                StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
                string WSReturned =  reader.ReadToEnd();
            }
        }
    }
    catch (WebException ex)
    {
        //Nothing...
    }
}

我测试了"& myValue ="并再次返回null

这是我的PHP代码:

<?php

if (isset($_POST['NewArray'])) {
    $NewArray = $_POST['NewArray'];
} else {
    $NewArray = "Not";
}

echo $NewArray;?>

1 个答案:

答案 0 :(得分:0)

如果您将&myValue=Something附加到查询字符串,则不会使用$_POST来获取值,而是使用$_GET

现在来看你的代码对我来说似乎没问题,也许这个错误是你申请的另一个方面。

我建议您检查$_POSTisset是否有值,然后尝试调试它。

如果您收到例外,请发布日志,希望有所帮助:)