C# - > Php |发布数据

时间:2013-11-18 06:27:08

标签: c# php postdata

过去两天我一直在努力处理php post数据,在绝对肯定我的代码是合乎逻辑的之后,我放弃了尝试让它自己运行。

这是我的C#代码,

class SecureWeb
{
    /*
     *  CONSTRUCTOR
    */
    public SecureWeb()
    {
        //INITIALIZE

    }

    public bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
        return true;
    }
    public string Post(string URI, NameValueCollection Message)
    {
        try
        {
            string result = null;
            using (WebClient wc = new WebClient())
            {
                wc.Proxy = null;
                wc.Credentials = CredentialCache.DefaultCredentials;                    
                ServicePointManager.ServerCertificateValidationCallback += ValidateServerCertificate;
                byte[] bByte = wc.UploadValues(URI, (Message));
                result = Encoding.UTF8.GetString(bByte);
            }
            return result;
        }
        catch (Exception) { }
        return null;
    }
}

这是我的PHP代码(是的,我尝试过使用简单的回声),

<?php
function getParams() {

    if (!isset($_POST['db'])) {
        return false;
    }
    if (!isset($_POST['user'])) {
        return false;
    }

    return true;
}

if (!getParams()) {

    echo('NULL_DATA');
    exit();
}
else {

    $user = $_POST['user'];
    echo ($user);
    exit();
}

&GT;

我收到406错误声称我的请求是“不可接受”。 我也相当肯定手头的问题是我的服务器,我只是不确定需要修复或调整什么。

2 个答案:

答案 0 :(得分:1)

添加

wc.Headers.Add("Content-Type","application/x-www-form-urlencoded");

发送请求之前,还删除来自

的消息的括号
wc.UploadValues(URI, Message);

呼叫

答案 1 :(得分:0)

在我找到解决方案之前,我使用了每个可能的标题,看到我的网络服务器100%确信问题不在他们的最后。事实证明,我需要一个用户代理,因为由于一些奇怪的原因,请求默认没有获得一个。