Android 第2步:使用字符串请求发送POST请求
您好,我是android新手,现在我正在使用改造来集成web服务 我不了解如何使用改装POST请求将参数发送到服务器 请帮帮我。谢谢 主要活动:-Android 第2步:使用字符串请求发送POST请求,android,retrofit2,Android,Retrofit2,您好,我是android新手,现在我正在使用改造来集成web服务 我不了解如何使用改装POST请求将参数发送到服务器 请帮帮我。谢谢 主要活动:- String url=“XXXXXXXXX/”; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 改装改装=新建改装.Builder().baseUrl(url
String url=“XXXXXXXXX/”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
改装改装=新建改装.Builder().baseUrl(url)。
addConverterFactory(GsonConverterFactory.create()).build();
PostInterface服务=改装.create(PostInterface.class);
JSONObject JSONObject=新的JSONObject();
试一试{
jsonObject.put(“电子邮件”device3@gmail.com");
jsonObject.put(“密码”、“1234”);
}捕获(JSONException e){
e、 printStackTrace();
}
最终字符串结果=jsonObject.toString();
service.getStringScalar(result).enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
System.out.println(“结果是==>”+response.body());
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
System.out.println(“失效”);
}
});
}
界面后:-
公共接口后接口{
@POST(“用户/医生登录”)
调用getStringScalar(@Body-String-Body);
}
公共界面后界面{
@POST(“用户/医生登录”)
调用getStringScalar(@Field(“PARAMATER_ID”)字符串体);}
您也可以使用字符串代替jsonobject,但我建议使用json进行重新编译。“@Field(您的_参数)”是您使用此创建新模型类的方式:
public class Credentials {
private String email;
private String password;
public Credentials(String email, String password) {
this.email = email;
this.password = password;
}
}
然后修改您的界面:
public interface PostInterface {
@POST("User/DoctorLogin")
Call<String> getStringScalar(@Body Credentials body);
}
公共接口后接口{
@POST(“用户/医生登录”)
调用getStringScalar(@Body-Credentials-Body);
}
那么就这样称呼它:
service.getStringScalar(new Credentials("device3@gmail.com", "1234")).enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
System.out.println("result is====>" + response.body());
}
@Override
public void onFailure(Call<String> call, Throwable t) {
System.out.println("Failuere");
}
});
service.getStringScalar(新凭据(“device3@gmail.com“,”1234“)。排队(新回调(){
@凌驾
公共void onResponse(调用、响应){
System.out.println(“结果是==>”+response.body());
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
System.out.println(“失效”);
}
});
阅读此内容将帮助您理解改装。创建一个模型类
public class Model {
String userName;
String password;
}
生成getter和setter
修改你的界面
public interface ApiInterface {
@FormUrlEncoded
@POST("User/DoctorLogin")
Call<Model> loadDetail(@Field("user_id") String user_id,
@Field("password") String password);
}
公共接口{
@FormUrlEncoded
@POST(“用户/医生登录”)
调用loadDetail(@Field(“user\u id”)字符串user\u id,
@字段(“密码”)字符串(密码);
}
这样称呼它
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create()).baseUrl(url)
.build();
ApiInterface service = retrofit.create(ApiInterface.class);
Call<Model> call = service.loadDetail("username", "password");
call.enqueue(new Callback<Model>() {
@Override
public void onResponse(Call<Model> call, Response<Model> response) {
int statusCode = response.code();
Model user = response.body();
Log.d("userName: " user.getUserName());
Log.d("password: " + user.getPassword());
}
@Override
public void onFailure(Call<Model> call, Throwable t) {
Toast.makeText(getApplicationContext(), "data not found", Toast.LENGTH_SHORT).show();
}
reformation-reformation=new-reformation.Builder()
.addConverterFactory(GsonConverterFactory.create()).baseUrl(url)
.build();
ApiInterface服务=改装.create(ApiInterface.class);
Call Call=service.loadDetail(“用户名”、“密码”);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
int statusCode=response.code();
Model user=response.body();
Log.d(“用户名:”user.getUserName());
Log.d(“密码:+user.getPassword());
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(getApplicationContext(),“找不到数据”,Toast.LENGTH_SHORT.show();
}
这是什么的可能重复怎么能从我的mainActivity调用它?你正在使用call getStringScalar(@Body String Body);……正确的是call getStringScalar(@Field(“PARAMATER_ID”)String Body);……设置参数字段是关键,您使用的不是body OK,让我检查并告诉您结果我没有收到故障响应意味着调用故障
public class Model {
String userName;
String password;
}
public interface ApiInterface {
@FormUrlEncoded
@POST("User/DoctorLogin")
Call<Model> loadDetail(@Field("user_id") String user_id,
@Field("password") String password);
}
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create()).baseUrl(url)
.build();
ApiInterface service = retrofit.create(ApiInterface.class);
Call<Model> call = service.loadDetail("username", "password");
call.enqueue(new Callback<Model>() {
@Override
public void onResponse(Call<Model> call, Response<Model> response) {
int statusCode = response.code();
Model user = response.body();
Log.d("userName: " user.getUserName());
Log.d("password: " + user.getPassword());
}
@Override
public void onFailure(Call<Model> call, Throwable t) {
Toast.makeText(getApplicationContext(), "data not found", Toast.LENGTH_SHORT).show();
}