Android 改造@post参数
我希望将bankname和branchname发送到URL 公共接口MInterface{ @GET(“/api/getbank/{bank name}/{branch name}”)Android 改造@post参数,android,json,Android,Json,我希望将bankname和branchname发送到URL 公共接口MInterface{ @GET(“/api/getbank/{bank name}/{branch name}”) void getUser(@Path(“bankname”)字符串bankname,@Path(“branchname”)字符串branchname,回调uscb); } RestAdapter radapter=new RestAdapter.Builder().setEndpoint(url.build()
void getUser(@Path(“bankname”)字符串bankname,@Path(“branchname”)字符串branchname,回调uscb);
}
RestAdapter radapter=new RestAdapter.Builder().setEndpoint(url.build()
MInterface restInt=radapter.create(MInterface.class);
String bankname=“是银行”;
String branchname=“联合合作社银行UMARWADA”;
getUser(bankname、branchname、newcallback(){
@凌驾
public void成功(Pojo模型、响应){
Data=model.getData();
字符串IFSC=data.getIFSC();
Log.d(“IFSCHandler”、“onBankSelected:”+IFSC);
Toast.makeText(MainActivity.this,IFSC,Toast.LENGTH_LONG.show();
}
@凌驾
公共无效失败(错误){
字符串err=error.getMessage();
}
});
如果必须使用@GET,请使用此选项
void getUser(@Query("bankname") String bankname,@Query("branchname") String branchname , Callback<Pojo> uscb);
void getUser(@Query(“bankname”)字符串bankname,@Query(“branchname”)字符串branchname,回调uscb);
如果你必须使用@POST,那么
您必须使用@FormUrlEncoded进行此操作
void getUser(@Field(“bankname”)字符串bankname,@Field(“branchname”)字符串branchname,回调uscb) 我希望这会对您有所帮助。
公共接口{
//此方法用于“POST”
@FormUrlEncoded
@POST(“/api.php”)
电话亭(
@字段(“bankname”)字符串bankname,
@字段(“branchname”)字符串branchname
);
//此方法用于“获取”
@获取(“/api.php”)
呼叫获取(
@查询(“bankname”)字符串bankname,
@查询(“branchname”)字符串branchname
);
}
public void getBankDetails(字符串bankName、字符串branchName){
//这里创建了一个日志拦截器
HttpLoggingInterceptor logging=新的HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
//日志侦听器将添加到http客户端
OkHttpClient.Builder httpClient=新建OkHttpClient.Builder();
httpClient.addInterceptor(日志记录);
//改装生成器将连接客户端,以获取连接日志
改装改装=新改装.Builder()
.client(httpClient.build())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(服务器URL)
.build();
接口服务=翻新.create(Interface.class);
Call Call=service.get(bankName,branchName);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
BusProvider.getInstance().post(新的ServerEvent(response.body());
Log.e(标记为“成功”);
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
//处理执行失败,如没有internet连接
BusProvider.getInstance().post(新的ErrorEvent(-2,t.getMessage());
}
});
}
谢谢您遇到的错误是什么,请指定它。您不能使用GET发送数据,您必须使用POSTam通过在{bank name}中传递bankname来检索分行列表,现在我想传递这个{bank name}/{branch name}api.techm.co.in/api/ListBranchs api的银行名称和分行名称。请帮助我这里的任何一个
MInterface restInt=radapter.create(MInterface.class);
String bankname="Yes bank";
String branchname="ASSOCIATE COOP BANK UMARWADA";
restInt.getUser(bankname ,branchname ,new Callback<Pojo>() {
@Override
public void success(Pojo model, Response response) {
Data data =model.getData();
String IFSC=data.getIFSC();
Log.d("IFSCHandler","onBankSelected:::"+IFSC);
Toast.makeText(MainActivity.this,IFSC, Toast.LENGTH_LONG).show();
}
@Override
public void failure(RetrofitError error) {
String err = error.getMessage();
}
});
void getUser(@Query("bankname") String bankname,@Query("branchname") String branchname , Callback<Pojo> uscb);
public interface Interface {
//This method is used for "POST"
@FormUrlEncoded
@POST("/api.php")
Call<ServerResponse> post(
@Field("bankname") String bankName,
@Field("branchname") String branchName
);
//This method is used for "GET"
@GET("/api.php")
Call<ServerResponse> get(
@Query("bankname") String bankName,
@Query("branchname") String branchName
);
}
public void getBankDetails(String bankName, String branchName){
//Here a logging interceptor is created
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
//The logging interceptor will be added to the http client
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addInterceptor(logging);
//The Retrofit builder will have the client attached, in order to get connection logs
Retrofit retrofit = new Retrofit.Builder()
.client(httpClient.build())
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(SERVER_URL)
.build();
Interface service = retrofit.create(Interface.class);
Call<ServerResponse> call = service.get(bankName,branchName);
call.enqueue(new Callback<ServerResponse>() {
@Override
public void onResponse(Call<ServerResponse> call, Response<ServerResponse> response) {
BusProvider.getInstance().post(new ServerEvent(response.body()));
Log.e(TAG,"Success");
}
@Override
public void onFailure(Call<ServerResponse> call, Throwable t) {
// handle execution failures like no internet connectivity
BusProvider.getInstance().post(new ErrorEvent(-2,t.getMessage()));
}
});
}