C#WebClient未将数据正确发布到PHP脚本
C#: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数组从未实际向其发布任何值。这意味着回音线没有输出
使用(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。谢谢大家的帮助。我现在要哭了:)