我正在从Shopify中削减CollectionListing
Api,我需要在'collecton_listing_id'
中传递url
作为参数。我正在传递id,但无法在Callback中得到响应。
注意:我在Postman中使用参数测试了api并且工作正常。
这是我的实施。
ProductActivity.java
private void processProductIds() {
apiInterface = APIClient.getClient().create(ApiInterface.class);
Call<List<Integer>> call = apiInterface.getProductIds(key, id);
call.enqueue(new Callback<List<Integer>>() {
@Override
public void onResponse(Call<List<Integer>> call, Response<List<Integer>> response) {
String s = String.valueOf(response.body());
Log.d("S", "onResponse:" + s);
}
@Override
public void onFailure(Call<List<Integer>> call, Throwable t) {
}
});
}
ApiInterface.java
public interface ApiInterface {
@GET("collection_listings/{collection_listing_id}/product_ids.json")
Call<List<Integer>> getProductIds(@Header("Authorization") String accessToken, @Path("collection_listing_id") long id);
}
模型类
public class IdExample {
@SerializedName("product_ids")
@Expose
private List<Integer> productIds = null;
public List<Integer> getProductIds() {
return productIds;
}
public void setProductIds(List<Integer> productIds) {
this.productIds = productIds;
}
}
JSON响应
{
"product_ids": [
1331092619350,
1331125551190,
1331126599766,
1331121651798
]
}
谢谢。
答案 0 :(得分:2)
您需要将getProductIds
的返回类型从Call<List<Integer>>
更改为Call<IdExample>
编辑:(如评论中所述)
您还应将List<Integer> productIds
更改为List<Long> productIds
答案 1 :(得分:0)
应该是这样的
+ (void)setFlashMode:(AVCaptureFlashMode)flashMode forDevice:(AVCaptureDevice *)device
{
if ([device hasFlash] && [device isFlashModeSupported:flashMode])
{
NSError *error = nil;
if ([device lockForConfiguration:&error])
{
[device setFlashMode:flashMode];
[device unlockForConfiguration];
}
else
{
NSLog(@"%@", error);
}
}
}
然后像这样改变api界面
private void processProductIds() {
apiInterface = APIClient.getClient().create(ApiInterface.class);
Call<IdExample> call = apiInterface.getProductIds(key, id);
call.enqueue(new Callback<IdExample>() {
@Override
public void onResponse(Call<IdExample> call, Response<IdExample> response) {
String s = String.valueOf(response.body().getProductIds());
Log.d("S", "onResponse:" + s);
}
@Override
public void onFailure(Call<IdExample> call, Throwable t) {
}
});
}