Android 将数据发送到jsonobject改造中的字段

Android 将数据发送到jsonobject改造中的字段,android,retrofit,retrofit2,Android,Retrofit,Retrofit2,我有一张Wordpress表格 我想通过改造向它发送一些数据 但问题是。。。 在API中。。我有字段名,但没有将其作为JSONOBJECt 所以我如何向它发送数据 API是 [ { "id": 1368, "date": "2014-04-29T02:02:39", "date_gmt": "2014-04-28T23:02:39", "guid": { "rendered": "" }, "modified": "2014-04-

我有一张Wordpress表格 我想通过改造向它发送一些数据 但问题是。。。 在API中。。我有字段名,但没有将其作为JSONOBJECt 所以我如何向它发送数据 API是

[
  {
    "id": 1368,
    "date": "2014-04-29T02:02:39",
    "date_gmt": "2014-04-28T23:02:39",
    "guid": {
      "rendered": ""
    },
    "modified": "2014-04-30T14:52:32",
    "modified_gmt": "2014-04-30T11:52:32",
    "slug": "%d8%a7%d8%b1%d8%b3%d9%84-%d8%a7%d8%b3%d8%aa%d8%b4%d8%a7%d8%b1%d8%aa%d9%83",
    "status": "publish",
    "type": "page",
    "link": "",
    "title": {
      "rendered": "ارسل استشارتك"
    },
    "content": {
      "rendered": "<p>[vc_row][vc_column width=&#8221;1/1&#8243;]<div role=\"form\" class=\"wpcf7\" id=\"wpcf7-f1381-o1\" lang=\"ar\" dir=\"rtl\">\n<div class=\"screen-reader-response\"></div>\n<form action=\"/wp-json/wp/v2/pages#wpcf7-f1381-o1\" method=\"post\" class=\"wpcf7-form\" novalidate=\"novalidate\">\n<div style=\"display: none;\">\n<input type=\"hidden\" name=\"_wpcf7\" value=\"1381\" />\n<input type=\"hidden\" name=\"_wpcf7_version\" value=\"5.0.3\" />\n<input type=\"hidden\" name=\"_wpcf7_locale\" value=\"ar\" />\n<input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f1381-o1\" />\n<input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" />\n</div>\n<p><strong>هل لديك أي أسئلة تخص صحتك النفسية؟ لا تتردد وقم بمراسلتنا الآن - جميع البيانات الشخصية تخضع لسياسة الخصوصية</strong></p>\n<p>أسمك الكريم (مطلوب)<br />\n    <span class=\"wpcf7-form-control-wrap your-name\"><input type=\"text\" name=\"your-name\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" /></span> </p>\n<p>بريدك الإلكتروني (مطلوب)<br />\n    <span class=\"wpcf7-form-control-wrap your-email\"><input type=\"email\" name=\"your-email\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text wpcf7-email wpcf7-validates-as-required wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" /></span> </p>\n<p>العنوان<br />\n    <span class=\"wpcf7-form-control-wrap your-subject\"><input type=\"text\" name=\"your-subject\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" /></span> </p>\n<p>سجلك المرضى<br /><span class=\"wpcf7-form-control-wrap text-583\"><input type=\"text\" name=\"text-583\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" /></span> </p>\n<p>عقاقير تتناولها<br /><span class=\"wpcf7-form-control-wrap text-623\"><input type=\"text\" name=\"text-623\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" /></span> </p>\n<p>مدة تناول العقاقير<br /><span class=\"wpcf7-form-control-wrap text-767\"><input type=\"text\" name=\"text-767\" value=\"\" size=\"40\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" /></span></p>\n<p>رسالتك<br /><span class=\"wpcf7-form-control-wrap your-message\"><textarea name=\"your-message\" cols=\"40\" rows=\"10\" class=\"wpcf7-form-control wpcf7-textarea\" aria-invalid=\"false\"></textarea></span> </p>\n<p><input type=\"submit\" value=\"إرسال\" class=\"wpcf7-form-control wpcf7-submit\" /></p>\n<div class=\"wpcf7-response-output wpcf7-display-none\"></div></form></div>[/vc_column][/vc_row]</p>\n",
      "protected": false
    },
    "excerpt": {
      "rendered": "<p>[vc_row][vc_column width=&#8221;1/1&#8243;][/vc_column][/vc_row]</p>\n",
      "protected": false
    },
    "author": 1,
    "featured_media": 0,
    "parent": 0,
    "menu_order": 0,
    "comment_status": "open",
    "ping_status": "open",
    "template": "page-homepage-blank.php",
    "meta": [],
    "_links": {
      "self": [
        {
          "href": ""
        }
      ]
    }
  }
]
[
{
“id”:1368,
“日期”:“2014-04-29T02:02:39”,
“日期”:“2014-04-28 23:02:39”,
“guid”:{
“呈现”:”
},
“修改”:“2014-04-30T14:52:32”,
“修改后的格林尼治标准时间”:“2014-04-30T11:52:32”,
“段塞”:“%d8%a7%d8%b1%d8%b3%d9%84-%d8%a7%d8%b3%d8%aa%d8%b4%d8%a7%d8%b1%d8%aa%d9%83”,
“状态”:“发布”,
“类型”:“页面”,
“链接”:“,
“标题”:{
“渲染”:“渲染”
},
“内容”:{
“被渲染”的“渲染”:“[vc的排排排排[vc的排排排[vc的排排排[vc的排排排[p[p>[p>[p>[p>[p>[p>[p>[p>[p>[p>[p>[vc的排排排排排[vc的排排排排排排排[[vc的排排排排宽][21;1/1/1/3;1;1/3;1;1/3;1/3;1;1/3;1/3;1;1;1/3;1;1/3;3;1;1/3;1/3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;43;43;43;3\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n在各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各(小标题)(小标题)(小标题)(小标题)(小标题)(小标题)\n<\n“,
“受保护”:错误
},
“摘录”:{
“呈现”:“[vc#U行][vc#U列宽=”;1/1″;][/vc#U列][vc#U行]

\n”, “受保护”:错误 }, "作者":1,, “特色媒体”:0, “父项”:0, “菜单顺序”:0, “评论状态”:“打开”, “ping_状态”:“打开”, “模板”:“页面主页blank.php”, “元”:[], “_链接”:{ “自我”:[ { “href”:” } ] } } ]
这些字段位于content JSONARRAY中

这就是我的界面

@FormUrlEncoded
    @POST("pages/1368")
    Call<Person> askUs(@Field("your-name") String Name ,
                       @Field("your-email") String Email ,
                       @Field("your-message") String Message);
@FormUrlEncoded
@帖子(“第/1368页”)
调用askUs(@Field(“你的名字”)字符串名,
@字段(“您的电子邮件”)字符串电子邮件,
@字段(“您的消息”)字符串消息);
在我的api类中

public void sendMessage(Callback<Person> callback , String name , String email , String message){
        Call<Person> person = service.askUs(name , email , message);
        person.enqueue(callback);
    }
public void sendMessage(回调、字符串名称、字符串电子邮件、字符串消息){
callperson=service.askUs(姓名、电子邮件、消息);
人员排队(回调);
}
在我的活动中

MyApp.apiManager.sendMessage(new Callback<Person>() {
                @Override
                public void onResponse(Call<Person> call, Response<Person> response) {

                    if (response.isSuccessful())
                    {
                        Toast.makeText(getContext(), "succeed", Toast.LENGTH_SHORT).show();

                        Log.i("MessageIs",response.body().toString());
                    } else
                    {

                        Toast.makeText(getContext(), "Failed" + response.toString() + response.message(), Toast.LENGTH_SHORT).show();
                        Log.i("ErrorIs","Failed" + response.toString() + response.message());
                    }
                }

                @Override
                public void onFailure(Call<Person> call, Throwable t) {

                    Toast.makeText(getContext(), "Error", Toast.LENGTH_SHORT).show();

                    Log.i("MessageIs",t.getLocalizedMessage());

                }
            } ,Name , Email, Message);
MyApp.apimager.sendMessage(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful())
{
Toast.makeText(getContext(),“success”,Toast.LENGTH_SHORT.show();
Log.i(“MessageIs”,response.body().toString());
}否则
{
Toast.makeText(getContext(),“Failed”+response.toString()+response.message(),Toast.LENGTH_SHORT.show();
Log.i(“ErrorIs”,“Failed”+response.toString()+response.message());
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(getContext(),“Error”,Toast.LENGTH_SHORT.show();
Log.i(“MessageIs”,t.getLocalizedMessage());
}
}、姓名、电子邮件、信息);

它给我的代码=401,message=Authorization Required

首先,你应该有一个精确的模型类来表示你的JSON,假设同一个模型的对象充满了上述内容,你可以使用以下方法

在改型调用中,在变量名中使用@Field(“FieldNAME”),

Yo应该使用
@Field(“FieldNAME)
以及使用
@FormUrlEncoded
对其进行注释,这是避免出现问题所必需的

示例如下所示:

    @FormUrlEncoded
    @POST(Urls.CHNAGE_PASSWORD_URL)
    Call<ChangePasswordResponse> changePassword(@Field("user_id") String 
    userId);
@FormUrlEncoded
@POST(URL.CHNAGE\u PASSWORD\u URL)
调用changePassword(@Field(“user_id”)字符串
用户ID);

U可以在请求正文中发送列表。我使用了www.jsonschema2pojo.org,它给了我内容列表中的主类,在内容类中它被呈现出来,所以我应该把它放在哪里。但是为什么它给我授权需要401错误?你有头授权吗?如果有,你需要添加一个
@头(“参数名称“
参数请求参数或参考此问题我认为它不需要标头授权这只是一种正常形式任何人都可以向管理员发送消息参考此问题