我正在使用Retrofit来集成我的Web服务,但我不明白如何使用POST请求将JSON对象发送到服务器。我现在被卡住了,下面是我的代码:
活动:-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Retrofit retrofit = new Retrofit.Builder().baseUrl(url).
addConverterFactory(GsonConverterFactory.create()).build();
PostInterface service = retrofit.create(PostInterface.class);
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("email", "[email protected]");
jsonObject.put("password", "1234");
} catch (JSONException e) {
e.printStackTrace();
}
final String result = jsonObject.toString();
}
PostInterface:-
public interface PostInterface {
@POST("User/DoctorLogin")
Call<String> getStringScalar(@Body String body);
}
请求JSON:-
{
"email":"[email protected]",
"password":"1234"
}
响应JSON:-
{
"error": false,
"message": "User Login Successfully",
"doctorid": 42,
"active": true
}
5条答案
按热度按时间z31licg01#
在gradle中使用这些
使用这两个POJO类……
LoginData.class
LoginResult.class
像这样使用API
这样调用...
编辑:-
把这个放进
success()
里面....注意:-始终使用POJO类,它删除了改造中的JSON数据解析。
olqngx592#
这条路适合我
我的Web服务
把这个加到你的gradle里
接口
活动
kd3sttzy3#
我认为您现在应该创建一个服务生成器类,然后使用Call调用您的服务
然后你可以使用它来同步请求并获得响应的主体:
对于异步:
有关完整的演练以及如何创建ServiceGenerator,请参阅下面提供的链接:
https://futurestud.io/tutorials/retrofit-getting-started-and-android-client
csbfibhn4#
从Retrofit 2+开始,使用POJO对象而不是JSON对象来发送带有@Body注解的请求。随着JSON对象被发送,请求字段被设置为它们的默认值,而不是从后端的应用程序发送的值。POJO对象则不是这种情况。
cngwdvgl5#