C#:带有基本身份验证的POST请求在PHP中混合了查询字符串和请求方法?

C#:带有基本身份验证的POST请求在PHP中混合了查询字符串和请求方法?,c#,php,post,webclient,basic-authentication,C#,Php,Post,Webclient,Basic Authentication,我在从C#向Apache(Windows)服务器上的PHP脚本发送POST请求时遇到问题。一切正常,除非我指示Apache通过.htaccess文件要求使用基本身份验证的有效用户 但是让我们把事情安排好。我使用以下代码使用HTTP-POST将键/值对列表发送到我的PHP脚本: NameValueCollection nameValues = new NameValueCollection(); nameValues["operation"] = ...; nameValues["order"]

我在从C#向Apache(Windows)服务器上的PHP脚本发送POST请求时遇到问题。一切正常,除非我指示Apache通过
.htaccess
文件要求使用基本身份验证的有效用户

但是让我们把事情安排好。我使用以下代码使用HTTP-POST将键/值对列表发送到我的PHP脚本:

NameValueCollection nameValues = new NameValueCollection();
nameValues["operation"] = ...;
nameValues["order"] = ...;
nameValues["status"] = ...;
nameValues["comment"] = ...;
nameValues["user"] = ...;

WebClient webClient = new WebClient();
try
{
    CredentialCache credentialCache = new CredentialCache();
    credentialCache.Add(new Uri(PERFORM_URL), "Basic", new NetworkCredential(PERFORM_USER, PERFORM_PASSWORD));

    webClient.Credentials = credentialCache;
    byte[] response = webClient.UploadValues(PERFORM_URL, "POST", nameValues);
    string responseString = Encoding.ASCII.GetString(response);
}
finally
{
    webClient.Dispose();
}
服务器上的PHP脚本如下所示:

<?php

print_r($_SERVER);

?>

其中,
REQUEST\u方法
包含所有参数+附加的
POST
。这是错误的。我能怎么办?我也读过并尝试过解决方案,人们使用
HttpWebRequest
使用
PreAuthenticate
属性-但这对我也不起作用。

Hm.没有让它起作用,但通过自己的身份验证实现,所以我不再需要基本的身份验证。如果有人有想法的话,他仍然对有效的解决方案感兴趣;-)

电线上的实际反应是什么?知道这一点将有助于判断错误是在C#部分还是PHP部分。我的C#代码接收我在上一个代码片段中给出的输出。我没有调试实际的HTTP通信-我该怎么做?你想看到什么?最好的办法可能是让Wireshark在他们之间的网络上运行,并观察原始TCP流量,看看C#发送的HTTP是否有效。。。如果没有,你至少知道它是在C#(或者你的代码,或者你正在使用的库中的一个bug)…嗯,我的脚本正在被调用,我也得到了回复。这基本上和这里提到的问题相同(),只是解决方案对我不起作用。谢谢你在没有给出合理理由的情况下否决了这个问题。我爱你们这些人。
Array
(
    ...
    [REMOTE_USER] => ****
    [AUTH_TYPE] => Basic
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => operation=updatestatus&order=185&status=17&comment=Test&user=somenamePOST
    [QUERY_STRING] => 
    ...
    [PHP_AUTH_USER] => ****
    [PHP_AUTH_PW] => ****
    [REQUEST_TIME] => 1286889387
    [argv] => Array
        (
        )

    [argc] => 0
)