Я пытаюсь читать и записывать файлы с моего веб-сервера через C #.
До сих пор через PHP я сделал это, чтобы вы могли писать в файлы с file_put_contents()
, Сохраненные файлы являются текстовыми файлами, поэтому вы можете легко их прочитать. Моя программа C # с ответами работает нормально, и я получаю желаемые значения.
private string GetWarnInfo(string id)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create($"http://example.com/{id}.txt");
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
return reader.ReadToEnd();
}
}
catch(Exception)
{
return null;
}
}
100% времени он не возвращал ноль, что является успехом.
Ну, написание. Мой PHP в example.php
выглядит так:
if (file_exists($_GET['id'] . '.txt'))
{
unlink($_GET['id'] . '.txt');
file_put_contents($_GET['id'] . '.txt', $_GET['info']);
} else {
file_put_contents($_GET['id'] . '.txt', $_GET['info']);
}
Пока он полностью работает через браузерные звонки (http://example.com/example.php?id=23&info=w3
), и на самом деле делает текстовый файл, я не могу заставить его работать с C #:
public void ServerRequest(string id, string info)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com/example.php?id=" + id + "&info=" + info);
request.Method = "GET";
}
Например, я звоню ServerRequest((23).ToString(), "w3")
, но файл не изменится, он всегда будет либо не существующим, либо в последнем состоянии (если он был).
Что может вызвать эту проблему? Как бы это исправить?
Благодаря @ Бармар
Я понял проблему, если я не позвоню GetResponse()
, он никогда не запустит веб-запрос. После этого все работало нормально!
Других решений пока нет …