c # пустой массив как ответ от laravel - PullRequest
0 голосов
/ 27 октября 2019

У меня проблема с одним сервисом и c #, сервис написан на laravel и потребляется c #, проблема в том, что ответ laravel не читается c #.

Я пробую сервис с почтальоном,и работает правильно.

При попытке использовать c # возврат laravel в качестве ответа: пустой массив при использовании json или пустая строка при использовании строки значения из того же самого переданного запроса.

c # code:

        string token =  GetAuthToken();

        var request = WebRequest.Create("url") as HttpWebRequest;
        request.Method = "POST";
        request.Accept = "application/json";
        request.Headers.Add("Authorization", "Bearer " + token);


        using (var streamWriter = new StreamWriter(request.GetRequestStream()))
        {
           streamWriter.Write(activities);
        }
        try
            {

            var response = request.GetResponse() as HttpWebResponse;

            if (response.StatusCode == HttpStatusCode.OK)
            {
              (var streamReader = new StreamReader(response.GetResponseStream(),Encoding.UTF8))
                {
                    //return a empty array or empty string
                    var result = streamReader.ReadToEnd();
                }

            }
        }
        catch(Exception e)
        {
            throw e;

        }

Код Laravel:

     public function SetActivities(Request $request)
{
    //return value: HULE
    $re = $request[0]['Name'];
    return $re;

}

Почтальон отображает возвращаемое значение в виде: HULE, но в c # значение es: ""

При изменении кода в laravel дляэто:

 public function SetActivities(Request $request)
{
    $re = 'a';
    return $re;

}

Почтальон: a

C #: a

Почему второй работает правильно?

1 Ответ

0 голосов
/ 28 октября 2019

Найдено

правильный код:

 $request->getContent();
 //also this one works
 $request->json()->all();

вместо предложения $ request.

...