Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将2个POST JSON改装为ThingSpeak频道_Android_Json_Post_Gson_Retrofit2 - Fatal编程技术网

Android 将2个POST JSON改装为ThingSpeak频道

Android 将2个POST JSON改装为ThingSpeak频道,android,json,post,gson,retrofit2,Android,Json,Post,Gson,Retrofit2,我是Android新手,正在开发一款应用程序,可以定期向ThingSpeak频道发送数据。 数据将是Person类型的对象列表。我希望以JSON格式发送它们,因此为此我使用了带有POST函数的翻新2。 假设我有一个频道号123456,带有api_键APIKEY123和ThingSpeak api:api.ThingSpeak.com。我的POST函数如下所示: POST(URL\u字符串) 呼叫后期数据(para1、para2); 请问我应该在URL_字符串中输入什么,para1和pa

我是Android新手,正在开发一款应用程序,可以定期向ThingSpeak频道发送数据。
数据将是Person类型的对象列表。我希望以JSON格式发送它们,因此为此我使用了带有POST函数的翻新2。
假设我有一个频道号123456,带有api_键APIKEY123和ThingSpeak api:api.ThingSpeak.com。我的POST函数如下所示:

POST(URL\u字符串)
呼叫后期数据(para1、para2);

请问我应该在URL_字符串中输入什么,para1和para2?我应该使用什么类型的编码标签?提前谢谢你。

你看到这个了吗

你需要用你喜欢做的事来代替那个人,para1,para2

例如,“更新频道”

您将用api_密钥和名称替换para1、para2

Person将替换为包含json对象的Channel类

{
  "id": 4,
  "name": "Updated Channel",
  "description": null,
  "metadata": null,
  "latitude": null,
  "longitude": null,
  "created_at": "2014-03-25T13:12:50-04:00",
  "elevation": null,
  "last_entry_id": null,
  "ranking": 15,
  "username": "hans",
  "tags": [],
  "api_keys":
  [
    {
      "api_key": "XXXXXXXXXXXXXXXX",
      "write_flag": true
    }
  ]
}
这将使您了解如何实现服务接口

编辑
以下内容将满足您的需要。仔细阅读如何使用它

服务接口的语法

interface InterfaceTS {

    @GET
    Call<Channel> updateChannel(
            @Query("api_key") String key,
            @Query("name") String name);

}

嗨,我已经试着遵循他们的文档,但它不起作用,这就是为什么我要问。你能根据我上面的细节给出一个具体的语法例子吗?我理解流程,但语法是我在这里要问的问题。非常感谢。thingSpeak下可能有这么多api,我可以确切地知道您要调用哪个api吗?当然可以。我正在尝试使用我的频道id和api_密钥调用api.thingspeak.com。我尝试了邮递员服务来检查频道是否正常工作,并且我能够仅使用api_键和字段值将数据发送到我的频道。我在问我如何在Android上做这种行为。如果我能将整个JSON列表发送给ThingSpeak,那就更好了。
interface InterfaceTS {

    @GET
    Call<Channel> updateChannel(
            @Query("api_key") String key,
            @Query("name") String name);

}
package com.example;

import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Channel {

    @SerializedName("id")
    @Expose
    private Integer id;
    @SerializedName("name")
    @Expose
    private String name;
    @SerializedName("description")
    @Expose
    private Object description;
    @SerializedName("metadata")
    @Expose
    private Object metadata;
    @SerializedName("latitude")
    @Expose
    private Object latitude;
    @SerializedName("longitude")
    @Expose
    private Object longitude;
    @SerializedName("created_at")
    @Expose
    private String createdAt;
    @SerializedName("elevation")
    @Expose
    private Object elevation;
    @SerializedName("last_entry_id")
    @Expose
    private Object lastEntryId;
    @SerializedName("ranking")
    @Expose
    private Integer ranking;
    @SerializedName("username")
    @Expose
    private String username;
    @SerializedName("tags")
    @Expose
    private List<Object> tags = null;
    @SerializedName("api_keys")
    @Expose
    private List<ApiKey> apiKeys = null;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Object getDescription() {
        return description;
    }

    public void setDescription(Object description) {
        this.description = description;
    }

    public Object getMetadata() {
        return metadata;
    }

    public void setMetadata(Object metadata) {
        this.metadata = metadata;
    }

    public Object getLatitude() {
        return latitude;
    }

    public void setLatitude(Object latitude) {
        this.latitude = latitude;
    }

    public Object getLongitude() {
        return longitude;
    }

    public void setLongitude(Object longitude) {
        this.longitude = longitude;
    }

    public String getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(String createdAt) {
        this.createdAt = createdAt;
    }

    public Object getElevation() {
        return elevation;
    }

    public void setElevation(Object elevation) {
        this.elevation = elevation;
    }

    public Object getLastEntryId() {
        return lastEntryId;
    }

    public void setLastEntryId(Object lastEntryId) {
        this.lastEntryId = lastEntryId;
    }

    public Integer getRanking() {
        return ranking;
    }

    public void setRanking(Integer ranking) {
        this.ranking = ranking;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public List<Object> getTags() {
        return tags;
    }

    public void setTags(List<Object> tags) {
        this.tags = tags;
    }

    public List<ApiKey> getApiKeys() {
        return apiKeys;
    }

    public void setApiKeys(List<ApiKey> apiKeys) {
        this.apiKeys = apiKeys;
    }

}
package com.example;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class ApiKey {

    @SerializedName("api_key")
    @Expose
    private String apiKey;
    @SerializedName("write_flag")
    @Expose
    private Boolean writeFlag;

    public String getApiKey() {
        return apiKey;
    }

    public void setApiKey(String apiKey) {
        this.apiKey = apiKey;
    }

    public Boolean getWriteFlag() {
        return writeFlag;
    }

    public void setWriteFlag(Boolean writeFlag) {
        this.writeFlag = writeFlag;
    }

}