导航:首页 > 编程语言 > retrofit传递json

retrofit传递json

发布时间:2023-05-15 11:48:38

㈠ Android studio使用Retrofit框架,Get发送请求,Gson解析返回的json数据时报错怎么办

数据库一直以来给我的感觉就是——麻烦!!!
接触了Realm之后才终于可以开开心心的使用数据库了。
本文总结一些Realm数据库的常用知识点,包括多线程访问,以及如何与Retrofit2.0一起使用等...
看懂这些知识点之后,个人认为就可以在一般的项目中使用Realm了。

1. model类必须extends RealmObject,所有属性必须用private修饰

2. model中支持基本数据结构:boolean, byte, short, ìnt, long, float, double, String, Dateand byte[]

3.若要使用List必须用RealmList<T>,或者继承RealmList

4.与Retrofit2.*一起使用,通过Gson来解析Json数据并直接生成RealmObject,可参考如下写法:

[java] view plain
Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaringClass().equals(RealmObject.class);
}

@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}

㈡ 如何使用Retrofit获取服务器返回来的JSON字符串

public String getWebContent(String url) { /帆凯/ 创建一个http请求对象 HttpGet request = new HttpGet(url); // 创建HttpParams以用来设置HTTP参数 HttpParams params = new BasicHttpParams(); // 设置连接超时或响应超时 // HttpConnectionParams.setConnectionTimeout(params, 3000); // HttpConnectionParams.setSoTimeout(params, 5000); // 创建一个网络访问处理对象 HttpClient httpClient = new DefaultHttpClient(params); try { // 执行请求参数项 HttpResponse response = httpClient.execute(request); // 判断是丛轿御否请求成功 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { // 获得响应信息 String content = EntityUtils.toString(response.getEntity()); return content; } else { // 网连接失败,使用Toast显示提示信息 Toast.makeText( context, context.getResources().... public String getWebContent(String url) { // 创建一个http请求对象 HttpGet request = new HttpGet(url); // 创建HttpParams以用来设置HTTP参数 HttpParams params = new BasicHttpParams(); // 设置连接超时或响应超时 // HttpConnectionParams.setConnectionTimeout(params, 3000); // HttpConnectionParams.setSoTimeout(params, 5000); // 创渗岩建一个网络访问处理对象 HttpClient httpClient = new DefaultHttpClient(params); try { // 执行请求参数项 HttpResponse response = httpClient.execute(request); // 判断是否请求成功 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { // 获得响应信息 String content = EntityUtils.toString(response.getEntity()); return content; } else { // 网连接失败,使用Toast显示提示信息 Toast.makeText( context, context.getResources().getString( R.string.connected_fails), 3000).show(); } } catch (Exception e) { // e.printStackTrace(); } finally { // 释放网络连接资源 httpClient.getConnectionManager().shutdown(); } return null; }content:即为json数据。

㈢ android Retrofit 的post请求方式的参数用换成json么

1. JSON的数据格式
a) 按照最简单的形式,可以用下面这样的 JSON 表示名称内/值对:

{ "firstName": "Brett" }

b) 可以创建包含多个名称/值对的记容录,比如:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }

c) 可以创建值的数组

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }
]}

d) 当然,可以使用相同的语法表示多个值(每个值包含多个记录):

㈣ 如何使用Retrofit获取服务器返回来的JSON字符串

只需简单一行代码,就能拿到服务器返回的JSON字符串了

ZhixueApiUtil.getInstance().getZhixueApi().getCouponList(new Callback<Response>() {
@Override
public void success(Response response, Response response1) {
//注意这里用第一个Response参数的
String jsonString = new String(((TypedByteArray) response.getBody()).getBytes());

//再使用Retrofit自带的JSON解析(或者别的什么)
Coupon coupon = new Gson().fromJson(jsonString, Coupon.class);
......
}

@Override
public void failure(RetrofitError error) {
......
}
});

㈤ Retrofit @body的使用

retrofit中有什燃州指么注解 ,但是对于@body网上讲解不是很多,现在我们来分析下@body
首先我们要明白的是后台传参数的方式最常皮配用的分为了get与post,get的参数是跟在url后面的,但是post的参数是放在请求体里面传给后台的,但是两种方式传表单数据的话,传给后台的参数字符串是一样的,只是get跟在url后,post放在请求体里面的,参数的形式都是以

这样的方式传参的,但是还有一种就是传json数据,get跟post都是把json放在body中传送给后台的。

retrofit一般传表单的数据是这样的:

底层自动封装成一个请求体,并通过这个注解来把这些参数封装成一个参数字符串传给后台!

如果是传json的话是这样的:

与上边的区别就是没得了@FormUrlEncoded来标志是表单数据,并且用的@body 里面的参数就是java中的bean对象!

这是最常用的两种方式,但是对于参数过多的表单数据按照第一种方式来写的话工程量有点大,有没得一种像post提交json这样的方式来提交表单数据迹消呢?
别急,方法是这样的,也是使用@body:

注意这里照样没有@FormUrlEncoded,而且@body后面跟的是请求体,相当于我们直接给后端传一个我们自定义的请求体,而不用retrofit注解来用底层封装,但是这个传的RequestBody要进行自己封装,加上参数必须的=,&符号,像下边这样:

封装数据这样封装:

封装RequestBody这样封装,把上边的HashMap<String, String>包装的参数传进来:

再把返回的这个RequestBody传入到上边的方法中,这样就实现了传递post表单的方法!

其实get中的有 @GET("weather/index")

也可以通过@QueryMap 来提交大量数据,这里就不过多说了

㈥ 如何通过Retrofit提交Json格式数据

本文将介绍如何通过retrofit库post一串json格凯棚袜式的数据。首先post的json数据格式如下:

{
"Id": "string",
"DeviceId": "string",
"Name": "string",
"SumDistance": 0,
"RouteNo": "string",
"SumPoints": 0,
"SetupTime": "2016-06-10T13:11:00.766Z",
"UsedTime": 0,
"Points": [
{
"Id": "string",
"RouteNo": "string",
"Name": "string",
"Longitude": "string",
"Latitude": "string"和档,
"Height": 0,
"Distance": 0,
"Yaw": 0,
"Pitch": 0,
"Speed": 0,
"Usedtime": 0
}
]
}

通过安装Android studio gsonformat插件,根据上面的json格式自动生成一个Bean类,本文命名为FlyRouteBean,

[java] view plain
package com.example.administrator.retrofitex;
import java.util.List;

import android.os.Parcel;
import android.os.Parcelable;

/**
* Created by Administrator on 2016/6/10.
*/
public class FlyRouteBean{

/**
* Id : string
* DeviceId : string
* Name : string
* SumDistance : 0
* RouteNo : string
* SumPoints : 0
* SetupTime : 2016-05-23T06:20:50.254Z
* UsedTime : 0
* Points : [{"Id"盯激:"string","RouteNo":"string","Name":"string","Longitude":"string","Latitude":"string","Height":0,"Distance":0,"Yaw":0,"Pitch":0,"Speed":0,"Usedtime":0}]
*/

public String Id;
public String DeviceId;
public String Name;
public double SumDistance;
public String RouteNo;
public int SumPoints;
public String SetupTime;
public double UsedTime;
/**
* Id : string
* RouteNo : string
* Name : string
* Longitude : string
* Latitude : string
* Height : 0
* Distance : 0
* Yaw : 0
* Pitch : 0
* Speed : 0
* Usedtime : 0
*/

public List<PointsBean> Points;

public String getId() {
return Id;
}

public void setId(String Id) {
this.Id = Id;
}

public String getDeviceId() {
return DeviceId;
}

public void setDeviceId(String DeviceId) {
this.DeviceId = DeviceId;
}

public String getName() {
return Name;
}

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

public double getSumDistance() {
return SumDistance;
}

public void setSumDistance(double SumDistance) {
this.SumDistance = SumDistance;
}

public String getRouteNo() {
return RouteNo;
}

public void setRouteNo(String RouteNo) {
this.RouteNo = RouteNo;
}

public int getSumPoints() {
return SumPoints;
}

public void setSumPoints(int SumPoints) {
this.SumPoints = SumPoints;
}

public String getSetupTime() {
return SetupTime;
}

public void setSetupTime(String SetupTime) {
this.SetupTime = SetupTime;
}

public double getUsedTime() {
return UsedTime;
}

public void setUsedTime(double UsedTime) {
this.UsedTime = UsedTime;
}

public List<PointsBean> getPoints() {
return Points;
}

public void setPoints(List<PointsBean> Points) {
this.Points = Points;
}

public static class PointsBean implements Parcelable {
public String Id;
public String RouteNo;
public String Name;
public String Longitude;
public String Latitude;
public double Height;
public double Distance;
public double Yaw;
public double Pitch;
public double Speed;
public double Usedtime;

public String getId() {
return Id;
}

public void setId(String Id) {
this.Id = Id;
}

public String getRouteNo() {
return RouteNo;
}

public void setRouteNo(String RouteNo) {
this.RouteNo = RouteNo;
}

public String getName() {
return Name;
}

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

public String getLongitude() {
return Longitude;
}

public void setLongitude(String Longitude) {
this.Longitude = Longitude;
}

public String getLatitude() {
return Latitude;
}

public void setLatitude(String Latitude) {
this.Latitude = Latitude;
}

public double getHeight() {
return Height;
}

public void setHeight(double Height) {
this.Height = Height;
}

public double getDistance() {
return Distance;
}

public void setDistance(double Distance) {
this.Distance = Distance;
}

public double getYaw() {
return Yaw;
}

public void setYaw(double Yaw) {
this.Yaw = Yaw;
}

public double getPitch() {
return Pitch;
}

public void setPitch(double Pitch) {
this.Pitch = Pitch;
}

public double getSpeed() {
return Speed;
}

public void setSpeed(double Speed) {
this.Speed = Speed;
}

public double getUsedtime() {
return Usedtime;
}

public void setUsedtime(double Usedtime) {
this.Usedtime = Usedtime;
}

@Override
public String toString() {
return "PointsBean{" +
"Id='" + Id + '\'' +
", RouteNo='" + RouteNo + '\'' +
", Name='" + Name + '\'' +
", Longitude='" + Longitude + '\'' +
", Latitude='" + Latitude + '\'' +
", Height=" + Height +
", Distance=" + Distance +
", Yaw=" + Yaw +
", Pitch=" + Pitch +
", Speed=" + Speed +
", Usedtime=" + Usedtime +
'}';
}

@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeString(Id);
dest.writeString(RouteNo);
dest.writeString(Name);
dest.writeString(Longitude);
dest.writeString(Latitude);
dest.writeDouble(Height);
dest.writeDouble(Distance);
dest.writeDouble(Yaw);
dest.writeDouble(Pitch);
dest.writeDouble(Speed);
dest.writeDouble(Usedtime);
}
public static final Creator<PointsBean> CREATOR=new Creator<PointsBean>() {

@Override
public PointsBean createFromParcel(Parcel source) {
// TODO Auto-generated method stub
PointsBean pointsBean=new PointsBean();
pointsBean.setId(source.readString());
pointsBean.setRouteNo(source.readString());
pointsBean.setName(source.readString());
pointsBean.setLongitude(source.readString());
pointsBean.setLatitude(source.readString());
pointsBean.setHeight(source.readInt());
pointsBean.setDistance(source.readInt());
pointsBean.setYaw(source.readInt());
pointsBean.setPitch(source.readInt());
pointsBean.setSpeed(source.readInt());
pointsBean.setUsedtime(source.readInt());
return pointsBean;
}

@Override
public PointsBean[] newArray(int size) {
// TODO Auto-generated method stub
return new PointsBean[size];
}

};

@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
}

@Override
public String toString() {
return "FlyRouteBean{" +
"Id='" + Id + '\'' +
", DeviceId='" + DeviceId + '\'' +
", Name='" + Name + '\'' +
", SumDistance=" + SumDistance +
", RouteNo='" + RouteNo + '\'' +
", SumPoints=" + SumPoints +
", SetupTime='" + SetupTime + '\'' +
", UsedTime=" + UsedTime +
", Points=" + Points +
'}';
}

}

阅读全文

与retrofit传递json相关的资料

热点内容
怎么他么怎么又网络了 浏览:649
java会出现内存泄露么 浏览:617
苹果4s锁屏后怎么还显示歌曲 浏览:207
鸿蒙系统文件管理哪些可以删除 浏览:550
ubuntuqt创建工程没有配置文件 浏览:126
网站登录变成其他网站怎么处理 浏览:202
ug数控编程学校有哪些 浏览:203
java图片上传显示 浏览:402
ppt的文件名后缀 浏览:902
ug编程软件下载到哪个盘 浏览:359
炫酷字体APP下载的文件在哪里 浏览:668
廊坊哪里有少儿编程机构 浏览:312
cad新文件能找回来吗 浏览:951
导出手机qq文件到u盘 浏览:456
电脑如何打开ppt文件怎么打开方式 浏览:782
魅族锁定区文件夹 浏览:357
刻字cnc怎么编程 浏览:182
学校的网络拓扑结构图 浏览:784
收集100个pdf文件里关键词 浏览:594
苹果关闭4g网络设置 浏览:289

友情链接