[HttpWebRequest] Сервер не читает POST запрос - C#

Узнай цену своей работы

Формулировка задачи:

Есть код: Клиент
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://test.local/C.php");
 request.ContentType = @"text/xml;charset=""utf-8""";
 request.Method = "POST";
 request.KeepAlive = true;
 byte[] data = Encoding.UTF8.GetBytes("message=1");
 Stream requestStream = request.GetRequestStream();
 requestStream.Write(data, 0 , data.Length);
 requestStream.Close();
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 StreamReader sr = new StreamReader(response.GetResponseStream());
 var responseString = sr.ReadToEnd();
 Console.WriteLine(responseString);
 Console.ReadKey();
Сервер:
$c = $_POST['message'];
    $file = fopen("file.txt", a);
    fwrite($file, $c);
    fclose($file);
    echo "Answer";
Ответ приходит, но php не может считать сообщение и в файл ничего не записывается. Помогите найти ошибку.

Решение задачи: «[HttpWebRequest] Сервер не читает POST запрос»

textual
Листинг программы
<?php
error_reporting(E_ALL);  
$dt = date("Y-m-d-H:i:s");
require 'vendor/autoload.php';
$mongo = new MongoClient('127.10.145.129'); //соединение с монгой
$coll = $mongo->posts->coll; // база посты, коллекция колл - так как одна берём глобально
$app = new \Slim\Slim(); // создаёт экземпляр приложения
// должен быть Json 404 - но не работает
// $app->notFound(function() use($app) {
//     $app->halt(404, json_encode(
//             [ 'error_message' => 'Resource not found' ]
//     ));
// });
// для всех запросов ответы с контент тайпом джейсон
$app->contentType('application/json');
// глобально берёшь запрос и ответ
$request = $app->request;
$response = $app->response;
// вешаем замыкание на пост запрос роута /log
$app->post('/log', function() use($request, $coll) {
    
    // достаём тело запроса
    $body = json_decode($request->getBody(), true);
    // пришиваем дату
    $body['created_at'] = new MongoDate();
    // пишем в коллецию
    $coll->insert($body);
});
// гет запрос на роут лог
$app->get('/log', function() use($coll) {
    // берём всю коллецию - итератор  в массив, и отдаём json
    echo json_encode((iterator_to_array($coll->find())));
});
 
// запуск приложения
$app->run();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5