Android 将2个POST JSON改装为ThingSpeak频道
我是Android新手,正在开发一款应用程序,可以定期向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
数据将是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;
}
}