0

我在 PCL 中使用 Xamarin Refit 有一个奇怪的行为。当我从我的应用程序发送 Post 请求时,服务器 php 脚本只能在 $_REQUEST 中看到结果,而不是在 $_POST 中。(这是一个简单的 php 脚本,我没有使用任何框架)

这是请求:

[Post("/logUser.php")]
Task<UserResponse> LogUser(string email, string password);

这是我声明接口的方式:

Func<HttpMessageHandler, ITFBApi> createClient = messageHandler =>
{
    var client = new HttpClient(messageHandler)
    {
        BaseAddress = new Uri(URLPaths.Api)
    };
    return RestService.For<ITFBApi>(client);
};

难道我做错了什么 ?

感谢您的帮助,

4

1 回答 1

0

于是,我找到了答案。我必须将 [Body] 属性添加到请求中,并发送一个对象:

[Post("/logUser.php")]
Task<UserResponse> LogUser([Body(BodySerializationMethod.UrlEncoded)] LogRequest request);

这样,参数可以在服务器端的 $_POST 中访问

于 2018-06-12T08:10:20.867 回答