将.net应用程序中的multipart / form-data发送到php服务器

时间:2017-04-17 22:28:24

标签: c# php

我根据这个答案https://stackoverflow.com/a/19983672

采用了一个简单的httpClient示例

我正在努力让这个工作,但在我的服务器端(我正在记录请求)它是空的。

C#

    async public void postTest(string theAddress)
    {
        HttpClient httpClient = new HttpClient();
        MultipartFormDataContent form = new MultipartFormDataContent();

        form.Add(new StringContent("abc"), "test");
        HttpResponseMessage response = await httpClient.PostAsync(theAddress, form);

        response.EnsureSuccessStatusCode();
        httpClient.Dispose();
        string sd = response.Content.ReadAsStringAsync().Result;
    }

在服务器端,我正在记录这个

PHP

    $log=''; 
    $log .= $_SERVER['REQUEST_METHOD']."\n";
    $log .= "Request array \n";
    $log .= print_r($_REQUEST,true);
    $log .= "Post array \n";
    $log .= print_r($_POST,true);

    $fp= fopen('log.txt', 'a+');
    fwrite($fp, $log."\n\n");
    fclose($fp);

运行c#app后的日志看起来像这样

GET
Request array 
Array
(
)
Post array 
Array
(
)

1 个答案:

答案 0 :(得分:0)

事实证明这是一个相当愚蠢的事情。 我决定打开小提琴手(忘了这个可爱的工具)并查看请求。

问题是我发布的是非www。地址和Web服务器设置为301重定向到www。当量。由于重定向是GET,因此帖子被请求丢失了。