我对一个服务和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#:一个
第二个为什么正常工作?
答案 0 :(得分:0)
找到
正确的代码:
$request->getContent();
//also this one works
$request->json()->all();
而不是仅$ request句子。