将数据发布到php

时间:2014-10-24 21:01:20

标签: c# php post

我最近遇到了一个问题:

C#代码:

string URI = "http://cannonrush.tk/UpdateLogFile.php";
string myParameters = "text=test123";

using (WebClient wc = new WebClient())
{
    wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
    string HtmlResult = wc.UploadString(URI, myParameters);
    Console.WriteLine(HtmlResult);   
}

PHP文件:

<?php
if (isset($_GET['text'])) {
    $file = "LogFile.txt";
    $handle = fopen($file, 'a') or die('ERROR: Cannot write to file: ' . $file);
    date_default_timezone_set('Europe/Amsterdam');
    $data = '~ ' . date('l jS \of F Y h:i:s A') . '>> ' . $_GET['text'] . "\n\n";
    fwrite($handle, $data);
    fclose($handle);
    echo "SUCCESS";
} else {
    echo "ERROR: Access forbidden without text";
}
?>

现在,每当我运行上面的C#代码时,我都会打印出这个输出:

  

错误:无文字访问禁止

我已尝试过多个版本将数据从C#发布到php,但似乎没有任何效果。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在php文件中将$ _GET [“text”]更改为$ _POST [“text”],或在C#代码中使用DownloadString()而不是UploadString()。

答案 1 :(得分:0)

$_GET仅在GET请求中填充,因此UploadString无效:

  

使用POST方法将指定的字符串上传到指定的资源。

如果您想允许任一动词,请改用$_REQUEST