C#:
public static String coinflip(int a){
StringBuilder sb = new StringBuilder();
for(int i = 0; i < a; i++){
int coin = (int)(Math.random() * 2);
sb.append(coin == 0 ? "T" : "H"); // like an if-else
}
return sb.toString();
}
PHP:
using (WebClient client = new WebClient()) {
byte[] response = client.UploadValues("http://example.com/api/server/key",
new NameValueCollection() {
{ "key", key }
});
string result = Encoding.UTF8.GetString(response);
Console.WriteLine(result);
}
当它运行时,PHP $ _POST数组永远不会有任何实际发布到它的值。这意味着回波线没有输出。
另外,是的,'key'确实有一个值,在这个例子中它只是被裁掉了。
答案 0 :(得分:1)
url将值编码为:
client.UploadValues("http://example.com/api/server/key", new NameValueCollection()
{
{ "key", HttpUtility.UrlEncode(key) }
});
答案 1 :(得分:1)
我不确定,表达式new NameValueCollection() { ... }
是否符合您的想法。
你应该明确并说
NameValueCollection values = new NameValueCollection();
values.Add("key", key);
byte[] response = client.UploadValues("http://example.com/api/server/key",
values);
搜索对象初始值设定项会显示Collection initializers
Collection初始化程序允许您在初始化实现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 }
};
所以也许使用没有括号的初始化器,例如
byte[] response = client.UploadValues("http://example.com/api/server/key",
new NameValueCollection {
{ "key", key }
});