Недавно я столкнулся с проблемой:
Код 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 ответа
Измените $ _GET ["text"] на $ _POST ["text"] в файле php или используйте DownloadString () вместо UploadString () в своем коде C #.
$_GET
заполняется только в запросах GET, поэтому UploadString работать не будет:
Загружает указанную строку в указанный ресурс с помощью метода POST.
Если вы хотите разрешить любой из глаголов, используйте вместо него $ _REQUEST.
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.