【发布时间】:2021-07-02 13:10:30
【问题描述】:
我正在尝试使用 c# 创建一个桌面应用程序,该应用程序将操纵我的 Laravel 网站的数据库(MySQL)。 所以我正在创建 API 路由来充当中间人。我实际上通过更改代码解决了我的问题,但不明白为什么它不能更早地工作。我是 Laravel 和 c# 的新手,编写一些东西只是为了学习一些东西。
这是我发送发布请求的 C# 代码
WebClient client = new WebClient();
string postUrl = "http://mywebsite.com/api/v1/handshake";
var reqparm = new System.Collections.Specialized.NameValueCollection();
reqparm.Add("param1", "<any> kinds & of = ? strings");
reqparm.Add("param2", "testing parameter two");
byte[] response= client.UploadValues(postUrl, reqparm);
string result = System.Text.Encoding.UTF8.GetString(response);
MessageBox.Show(result);
这是我在 Laravel 中的路线(中间件之外)
Route::prefix('v1')->group(function(){
Route::post('handshake','Api\SomeController@handshake');
});
我很好奇的问题是当我的控制器是这样的:
public function handshake(Request $request)
{
return json_encode($request);
}
回复是:{"attributes":{},"request":{},"query":{},"server":{},"files":{},"cookies":{},"headers":{}}
当我把握手方法改成这个时:
public function handshake(Request $request)
{
return json_encode($request->param2);
}
回复是:"testing parameter two"
所以我想知道为什么我返回json_encode($response).时响应是空的
Illuminate Request 是导致这种情况的不同类型的对象,还是我缺少的其他东西?如果您解释它不起作用的原因将非常有帮助
【问题讨论】:
-
你为什么要尝试
json_encode($request)?看看它有什么? -
是的,我想检查 $request 对象的所有属性。
-
您可以使用
xdebug,但您必须进行设置。这比json_encodeing 好多了,试试看! -
我正在从另一个不在 laravel 项目中的应用程序中检查它,就像在这种情况下,我试图查看我从我的 c# 客户端应用程序发送到服务器的 $request 是什么
标签: c# laravel post laravel-request