首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中使用改进来解析此web服务?

如何在android中使用改进来解析此web服务?
EN

Stack Overflow用户
提问于 2017-08-20 19:29:45
回答 2查看 153关注 0票数 0

http://www.superbinstruments.com/directory/index.php?r=webservice/profile/id/4096

在这里,我希望在URL中传递ID (与上面一样),并在主体中传递JsonObject (可以是空的)。

这里的概念是这样的:当我向json对象传递null时,它将检索配置文件数据,或者如果我传递带有配置文件信息的json对象,那么它将更新配置文件数据。

我已经尝试了以下方法,但我可以检索数据,但我不能更新数据。为了更新数据,我们可以传递与Body相同的JSON响应。

代码语言:javascript
复制
@POST("index.php")
Call<UserProfile> profileUser(@Query("r") String value, @Body String user);

@POST("index.php?")
Call<UserProfile> saveUser(@Query("r") String value, @Body JSONObject user);

我像这样传递: value= webservice/profile/id/4096

如果我将Json字符串作为配置文件更新信息进行传递,则会得到“不需要无效的请求密码”。

或者,如果我将作为配置文件更新信息的JsonObject传递,则在尝试抛出OutOfMemoryError时会抛出java.lang.OutOfMemoryError: OutOfMemoryError;没有可用的堆栈跟踪

EN

回答 2

Stack Overflow用户

发布于 2017-08-20 19:46:58

您发布的链接不需要任何正文才能发布。从代码中删除Body。要使用@Field,必须将方法注释为@FormUrlEncoded

你的方法应该是这样的。

代码语言:javascript
复制
@FormUrlEncoded
@POST("index.php?r=webservice/profile/id/")
Call<UserProfile> saveUser(@Field("value") String value);

希望它能有所帮助:)

票数 0
EN

Stack Overflow用户

发布于 2017-08-21 15:35:24

请试一下这条路

代码语言:javascript
复制
@POST("index.php")
Call<User> getInstruments(@Query("r") String webservice, @Body User user);

而且,您应该使用您的模型类通过JSON,就像Bhuvanesh建议的那样。

代码语言:javascript
复制
JSONObject jObj = null;
    try {
        jObj = new JSONObject();
        jObj.put("firstname", "Kunjan Shah");
    } catch (JSONException ex) {
        ex.printStackTrace();
    }

User user = new User();
user.setData(jObj);

这是你的模型类

代码语言:javascript
复制
public class User {

    public String getSuccess() {
        return success;
    }

    public void setSuccess(String success) {
        this.success = success;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public JSONObject getData() {
        return data;
    }

    public void setData(JSONObject data) {
        this.data = data;
    }

    String success;
    String message;
    JSONObject data;
}

并通过传递这两个参数来调用您的服务

用户调用= yourapiinterfaceobject.getInstruments("webservice/profile/id/4096",用户);

update_user_profile

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45781655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档