我想使用改装2从服务器检索数据。我已经读了很多同一个问题的答案,但我不知道问题是什么,这个和这个。然而,我一次又一次地遇到同样的问题。
这是我的接口课
public interface Product_APi {
@GET("/s=&cid=4&page=1&sort=1&manufacturer=&limit=100&color=&size=&price=")
Call<Total_Products> getProductDetail();
}
这是我的第一堂模特课
package com.hussain.lithoproductdetail;
import com.google.gson.annotations.SerializedName;
public class Product {
@SerializedName("id")
private String id;
@SerializedName("total_pages")
private int total_pages;
@SerializedName("name")
private String name;
@SerializedName("type")
private String type;
@SerializedName("sku")
private String sku;
@SerializedName("img")
private String img;
@SerializedName("img2")
private String img2;
@SerializedName("default_sort")
private String default_sort;
@SerializedName("price")
private int price;
@SerializedName("sale_price")
private String sale_price;
@SerializedName("stock_qty")
private String stock_qty;
@SerializedName("stock_qty_min")
private String stock_qty_min;
@SerializedName("stock_qty_min_sales")
private String stock_qty_min_sales;
@SerializedName("status")
private String status;
@SerializedName("currency")
private String currency;
@SerializedName("category_id")
private String category_id;
@SerializedName("start")
private int start;
@SerializedName("limit")
private String limit;
@SerializedName("manufacturer")
private String manufacturer;
public Product() {
}
public Product(String id, int total_pages, String name, String type, String sku, String img, String img2, String default_sort, int price, String sale_price, String stock_qty, String stock_qty_min, String stock_qty_min_sales, String status, String currency, String category_id, int start, String limit, String manufacturer) {
this.id = id;
this.total_pages = total_pages;
this.name = name;
this.type = type;
this.sku = sku;
this.img = img;
this.img2 = img2;
this.default_sort = default_sort;
this.price = price;
this.sale_price = sale_price;
this.stock_qty = stock_qty;
this.stock_qty_min = stock_qty_min;
this.stock_qty_min_sales = stock_qty_min_sales;
this.status = status;
this.currency = currency;
this.category_id = category_id;
this.start = start;
this.limit = limit;
this.manufacturer = manufacturer;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getTotal_pages() {
return total_pages;
}
public void setTotal_pages(int total_pages) {
this.total_pages = total_pages;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getSku() {
return sku;
}
public void setSku(String sku) {
this.sku = sku;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getImg2() {
return img2;
}
public void setImg2(String img2) {
this.img2 = img2;
}
public String getDefault_sort() {
return default_sort;
}
public void setDefault_sort(String default_sort) {
this.default_sort = default_sort;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getSale_price() {
return sale_price;
}
public void setSale_price(String sale_price) {
this.sale_price = sale_price;
}
public String getStock_qty() {
return stock_qty;
}
public void setStock_qty(String stock_qty) {
this.stock_qty = stock_qty;
}
public String getStock_qty_min() {
return stock_qty_min;
}
public void setStock_qty_min(String stock_qty_min) {
this.stock_qty_min = stock_qty_min;
}
public String getStock_qty_min_sales() {
return stock_qty_min_sales;
}
public void setStock_qty_min_sales(String stock_qty_min_sales) {
this.stock_qty_min_sales = stock_qty_min_sales;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public String getCategory_id() {
return category_id;
}
public void setCategory_id(String category_id) {
this.category_id = category_id;
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public String getLimit() {
return limit;
}
public void setLimit(String limit) {
this.limit = limit;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
}
这是我的第二节模型课
package com.hussain.lithoproductdetail;
import android.widget.LinearLayout;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
public class Total_Products {
private List<Product> products;
public Total_Products(){}
public Total_Products(List<Product> products) {
this.products = products;
}
public List<Product> getProducts() {
return products;
}
public void setProducts(List<Product> products) {
this.products = products;
}
}
这是我的改装经理班
package com.hussain.lithoproductdetail;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.hussain.lithoproductdetail.constant.Constants;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class RestManager {
private static Retrofit retrofit = null;
private Product_APi mProduct_aPi;
Gson gson = new GsonBuilder()
.setLenient()
.create();
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new BasicAuthInterceptor("myUserName", "myPassword"))
.build();
public Product_APi getmFlowerApi(){
if(retrofit==null){
Retrofit mretrofit = new Retrofit.Builder()
.baseUrl(Constants.Http.BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
mProduct_aPi = mretrofit.create(Product_APi.class);
}
return mProduct_aPi;
}
}
日志Cat错误是:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:25)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:118)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:212)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:106)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at okhttp3.RealCall$AsyncCall.execute(RealCall.java:135)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at java.lang.Thread.run(Thread.java:818)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:213)
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail W/System.err: ... 10 more
05-19 18:33:24.381 31343-31343/com.hussain.lithoproductdetail I/Error: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
我遇到以下额外的错误。
String BASE_URL = "www.example.com/"
在endpoint中,我再次在这里连接
@获取(“/s=
从endpoint的开头删除额外的/
后,问题解决了。所有其他都是正确的。
我是android编程新手。我有一个类,在这个类中,修改API调用是为了解析和显示JSON文件中的几个属性。但我得到: Java语言lang.IllegalStateException:应为BEGIN\u对象,但在第2行第1列为字符串 好心帮忙。我搜索了答案,但没有发现JSON响应有任何问题。发布了我的JSON响应和JAVA类: JSON响应: JAVA文件: 模型类:
问题内容: 此创建异常 非常感谢您的帮助。 问题答案: 让我们看看您收到的错误。 预期的BEGIN_OBJECT 您的JSON是一个对象,所有JSON对象都用花括号({})括起来。因此,BEGIN_OBJECT为{。并期待它在某个地方。 但在STRING 但是相反,他找到了一个字符串“ Something”。仍然没有告诉我们在哪里。 在第1行第1列的路径$ 啊,完美。在第1行的第1列。这是JSON
在尝试将json文本文件解析为餐厅对象的数组列表时,我遇到了错误“应为BEGIN\u数组,但在第1行第2列路径处为BEGIN\u对象。”我不知道哪里弄错了,因为我的Restaurant类中的数据成员与json文件中的字段完全对应。 主要的 餐厅类 txt文件
问题内容: 我从Web服务获取JSon数据,示例数据如下: 当我尝试将其转换时,它将引发错误,我这样做是: 我的班级是: LogCat说: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但在第1行第2列为BEGIN_ARRAY 问题答案: 错误说明发生了什么问题…您返回的是数组
问题内容: 我有这种方法: 我想解析一个JSON: 但是我收到一条错误消息: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但位于第1行第1列 问题答案: 即使没有看到您的JSON字符串,您也可以从错误消息中得知,它不是要解析为类实例的正确结构。 Gson希望您的JSON字符串
我正在尝试通过改造将字符串类型列表发送到mysql数据库。当我尝试使用postman时,我获得了成功,但我收到了来自android studio的错误消息。 我的API接口: 我的响应数据类: Php响应: Android Studio错误消息: OkHttp日志: 我认为问题出在我发布的列表中,因为如果我删除列表,结果是成功的。 怎么了?