Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WebClient未将数据正确发布到PHP脚本_C#_Php_Post_Webclient - Fatal编程技术网

C#WebClient未将数据正确发布到PHP脚本

C#WebClient未将数据正确发布到PHP脚本,c#,php,post,webclient,C#,Php,Post,Webclient,C#: 使用(WebClient=newWebClient()){ 字节[]响应=客户端。上载值(“http://example.com/api/server/key", 新名称ValueCollection(){ {“键”,键} }); 字符串结果=Encoding.UTF8.GetString(响应); 控制台写入线(结果); } PHP: $key=$\u POST[“key”]; 回声($键); 运行此操作时,PHP$\u POST数组从未实际向其发布任何值。这意味着回音线没有输出

C#:

使用(WebClient=newWebClient()){
字节[]响应=客户端。上载值(“http://example.com/api/server/key",
新名称ValueCollection(){
{“键”,键}
});
字符串结果=Encoding.UTF8.GetString(响应);
控制台写入线(结果);
}
PHP:

$key=$\u POST[“key”];
回声($键);
运行此操作时,PHP$\u POST数组从未实际向其发布任何值。这意味着回音线没有输出


此外,是的,“key”确实有一个值,在本例中它只是被裁剪出来。

url对该值进行如下编码:

client.UploadValues("http://example.com/api/server/key", new NameValueCollection()
    {
        { "key", HttpUtility.UrlEncode(key) }
    });

url对值进行如下编码:

client.UploadValues("http://example.com/api/server/key", new NameValueCollection()
    {
        { "key", HttpUtility.UrlEncode(key) }
    });

我不确定,表达式
newnamevalueCollection(){…}
做了您认为应该做的事情

你应该直截了当地说

NameValueCollection values = new NameValueCollection();
values.Add("key", key);
byte[] response = client.UploadValues("http://example.com/api/server/key",
                                      values);

搜索对象初始值设定项会显示

集合初始值设定项允许您在初始化实现IEnumerable的集合类或具有Add扩展方法的类时指定一个或多个元素初始值设定项

举个例子

List<Cat> cats = new List<Cat>
{
    new Cat(){ Name = "Sylvester", Age=8 },
    new Cat(){ Name = "Whiskers", Age=2 },
    new Cat(){ Name = "Sasha", Age=14 }
};

我不确定,表达式
newnamevalueCollection(){…}
做了您认为应该做的事情

你应该直截了当地说

NameValueCollection values = new NameValueCollection();
values.Add("key", key);
byte[] response = client.UploadValues("http://example.com/api/server/key",
                                      values);

搜索对象初始值设定项会显示

集合初始值设定项允许您在初始化实现IEnumerable的集合类或具有Add扩展方法的类时指定一个或多个元素初始值设定项

举个例子

List<Cat> cats = new List<Cat>
{
    new Cat(){ Name = "Sylvester", Age=8 },
    new Cat(){ Name = "Whiskers", Age=2 },
    new Cat(){ Name = "Sasha", Age=14 }
};

谢谢你的快速回复。但这实际上不起作用。仍然没有发布值。这里是整个函数,如果它改变了什么,尽管我不知道它会怎样。您发布的密钥的价值是什么?它可能是一个空字符串吗?不,它是一个64个字符长的字符串。我也在WebRequest中尝试过它,但遇到了完全相同的问题。我知道web服务器配置正确,所以它必须是C#。谢谢你的快速回复。但这实际上不起作用。仍然没有发布值。这里是整个函数,如果它改变了什么,尽管我不知道它会怎样。您发布的密钥的价值是什么?它可能是一个空字符串吗?不,它是一个64个字符长的字符串。我也在WebRequest中尝试过它,但遇到了完全相同的问题。我知道web服务器配置正确,所以它必须是C#。这两种方式都不一样吗?尽管如此,它仍然无法解决我的PHP无法获取帖子数据的问题。如果这也不起作用,那么我猜URL是错误的。唉。。。我觉得自己像个白痴。我真的以为我是在为这件事发疯。我忘记了url中的/after键,导致它无法发布到该目录中的index.php。谢谢大家的帮助。我现在要哭了:)这两种方式都不一样吗?尽管如此,它仍然无法解决我的PHP无法获取帖子数据的问题。如果这也不起作用,那么我猜URL是错误的。唉。。。我觉得自己像个白痴。我真的以为我是在为这件事发疯。我忘记了url中的/after键,导致它无法发布到该目录中的index.php。谢谢大家的帮助。我现在要哭了:)