C#空数组作为laravel的响应

时间:2019-10-27 15:13:42

标签: c# laravel api post response

我对一个服务和c#有问题,该服务是用laravel编写并由c#使用,问题是c#无法读取laravel的响应。

我尝试与邮递员一起使用该服务,并且工作正常。

尝试使用c#时,laravel返回作为响应:使用json时为空数组,而使用来自相同请求的值字符串时为空字符串。

c#代码:

        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#:一个

第二个为什么正常工作?

1 个答案:

答案 0 :(得分:0)

找到

正确的代码:

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

而不是仅$ request句子。