Значения POST не принимаются в PHP при отправке с классом .NET WebClient - PullRequest
1 голос
/ 11 апреля 2011

Я пытаюсь отправить некоторые данные POST с помощью класса .NET WebClient следующим образом:

WebClient objWebClient = new WebClient();

NameValueCollection objNameValueCollection = new NameValueCollection();
objNameValueCollection.Add("variable1", value1);
objNameValueCollection.Add("variable2", value2);
objNameValueCollection.Add("variable3", value3);

byte[] bytes = objWebClient.UploadValues(objURI, "POST", objNameValueCollection);
MessageBox.Show(Encoding.ASCII.GetString(bytes));

Но когда я печатаю значения POST в PHP с

var_dump($_POST)

Я получу пустую строку.

Что я здесь не так делаю? Почему значения POST явно не передаются в скрипт PHP?

Заранее спасибо за любые идеи Andreas

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

Я сам нашел решение и просто хочу поделиться результатом.

Это не имело ничего общего с моим кодом. Проблема заключалась в том, что я добавил перенаправление в свою конфигурацию Apache для перенаправления всех запросов с моего домена www.ab-tools.de на www.ab-tools.com .

Но приложение .NET по-прежнему отправляло данные в скрипт под старым доменом.

Поскольку при перенаправлении отбрасываются все данные POST, сценарий не получил данные из приложения .NET.

Это была действительно глупая ошибка - мне потребовалось некоторое время, чтобы я это понял. ; -)

С наилучшими пожеланиями и еще раз спасибо за все ответы Andreas

1 голос
/ 11 апреля 2011

В вашем коде нет ничего плохого ... проверено локально:

    static void Main(string[] args)
    {
        WebClient objWebClient = new WebClient();

        NameValueCollection objNameValueCollection = new NameValueCollection();
        objNameValueCollection.Add("variable1", "test");
        objNameValueCollection.Add("variable2", "ast");
        objNameValueCollection.Add("variable3", "ost");

        byte[] bytes = objWebClient.UploadValues("http://localhost/test.php", "POST", objNameValueCollection);
        Console.Write(Encoding.ASCII.GetString(bytes));
        Console.WriteLine();
        Console.WriteLine("Press any key to exit");
        Console.ReadLine();
    }

Тестовый файл:

<?php
    echo "Result:";
    print_r($_POST);
?>

Результат: enter image description here

...