我正在实现登录功能,并为此使用Post请求,但是我收到错误提示
“
retrofit.RetrofitError:com.squareup.okhttp.internal.http.HttpMethod.METHODS”
下面是我的代码
import java.util.HashMap;
import java.util.Map;
import retrofit.Callback;
import retrofit.http.*;
//Myapi.java
import java.util.HashMap;
import java.util.Map;
import retrofit.Callback;
import retrofit.http.*;
public interface MyApi {
/* LOGIN */
@POST("/api/0.01/oauth2/access_token/")
// your login function in your api
public void login(@Body HashMap<String, String> arguments, Callback<String> calback);
}
//In my activity
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(Constants_Interface.URL).setClient(newclient)
.build();
MyApi mylogin = restAdapter.create(MyApi.class);
HashMap<String, String> dicMap = new HashMap<String, String>();
dicMap.put("client_id", XXX);
dicMap.put("client_secret", XXX);
dicMap.put("username", XXX);
dicMap.put("password", XXX);
mylogin.login(dicMap, new Callback<String>() {
@Override
public void failure(RetrofitError retrofitError) {
retrofitError.printStackTrace(); // to see if you have
// errors
}
@Override
public void success(String s, retrofit.client.Response response) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Login Succes",
Toast.LENGTH_LONG).show();
}
});
在它下面的logcat输出。
02-10 13:02:43.846:W /
System.err(30684):retrofit.RetrofitError:com.squareup.okhttp.internal.http.HttpMethod.METHODS
02-10
试试这个
public interface SafeUserApi {
@FormUrlEncoded
@POST("/api/userlogin")
void getUserLogin(
@Field("client_id") String id,
@Field("client_secret") String secret,
@Field("username") String uname,
@Field("password") String password,
Callback<LoginResult> cb
);
}
这里的parm1是POST参数,您将把它传递给服务器。这将解决您的问题
如果您使用的是PHP,则可以使用以下命令访问param1 $uname= $_POST('username');
编辑1:
改造2.0版本:
public interface SafeUserApi {
@FormUrlEncoded
@POST("/api/userlogin")
Call<ResponseBody> getUserLogin(
@Field("client_id") String id,
@Field("client_secret") String secret,
@Field("username") String uname,
@Field("password") String password
);
}
问题内容: 我正在使用查询参数来设置Google Maps API所需的值。 问题是我不需要第一个查询参数的符号。 改造产生: 这会在我需要时导致呼叫失败 我该如何解决? 问题答案: 如果指定,则必须使用附加任何内容,产生类似的内容。 如果指定,则第一个必须使用附加,产生类似的内容。 这就是改造的工作方式。 当您指定时,Retrofit认为您已经提供了一些查询参数,并使用附加了 更多 查询参数。
这是我的模型课 另一个模型类
我正在使用改装向服务器发送POST请求。帖子正文的格式必须是以及设置为的内容类型标题。我发现了一个类似的问题,但公认的答案不起作用。 这是我试过的- 我的界面 调用函数 但是我收到了和。我做错了什么?预期的响应只是一个字符串,而不是JSON数组。
我正在学习一门改造课程,在这门课程中,我创建了一个带有api的小型后端,其中我有一个POST方法来执行教师登录。在课程中,他所做的是创建一名教师,并使用set方法向他传递电子邮件和密码,这是该方法在API中接收的内容。 我希望这样做,在电话改造中,您可以直接通过此电子邮件和密码,我已通过以下方式完成: 这就是我的模范老师: 最后,我呼吁进行以下改造: 然而,当我运行应用程序并通过表单传递电子邮件和
我正在尝试调用一个API,它要求我传入一个API密钥。 我使用HttpURLConnection的服务调用工作正常。 然而,我不确定这是如何工作与改造,因为我的调用进入失败的所有时间。这是我在同一个服务调用中使用的代码 我用这个来称呼它 所有这些调用都将进入改型中的OnFailure方法。如果不使用HeaderParameters发送它,它将以403获得成功,因为我显然需要在某个地方传递api键,
我正在尝试使用reverfit向Google GeoCode API发送一个请求。服务界面如下所示: 当我调用服务时: 我收到以下StackTrace: 我从这里获取了大量的代码:http://square.github.io/reverfit/所以我有点不理解这个问题。 想法?