Tag: 改造

上传图像为base64格式和压缩图像,然后通过改造发送到服务器?

我已经制作了上传图片,我在互联网上的教程中进行了改造。 这是我的代码: AcademicClient.class @Multipart @POST(“/”) Call postImage(@Part MultipartBody.Part image, @Part(“name”)RequestBody name); MainFeed.class File file = new File(filePath); RequestBody reqFile = RequestBody.create(MediaType.parse(“image/*”),file); MultipartBody.Part body = MultipartBody.Part.createFormData(“upload”,file.getName(),reqFile); RequestBody name = RequestBody.create(MediaType.parse(“text/plain”),”upload_test”); Log.d(“xxxxxxx”,body + ” —- “+ name); AcademicClient client = ServiceGenerator.createService(AcademicClient.class); Call call = client.postImage(body,name); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { } […]

ArrayList Null指针使用Condition进行exception

ArrayList NullPointerException (NPE)在仅为Google产品提取数据时 这是我获得NPE的路线: searchList.add(value); // getting NPE 日志: 02-24 14:25:35.903 17269-17269/app.retrofit_chucknorries E/app.retrofit_chucknorries.MainActivity$2: ERROR: null 02-24 14:25:35.904 17269-17269/app.retrofit_chucknorries W/System.err: java.lang.NullPointerException 02-24 14:25:35.909 17269-17269/app.retrofit_chucknorries W/System.err: at app.retrofit_chucknorries.MainActivity.searchList(MainActivity.java:132) 02-24 14:25:35.909 17269-17269/app.retrofit_chucknorries W/System.err: at app.retrofit_chucknorries.MainActivity$1.call(MainActivity.java:57) 02-24 14:25:35.909 17269-17269/app.retrofit_chucknorries W/System.err: at app.retrofit_chucknorries.MainActivity$1.call(MainActivity.java:51) 02-24 14:25:35.909 17269-17269/app.retrofit_chucknorries W/System.err: at rx.Observable$32.onNext(Observable.java:7187) 02-24 14:25:35.909 17269-17269/app.retrofit_chucknorries W/System.err: at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:130) 02-24 14:25:35.909 17269-17269/app.retrofit_chucknorries W/System.err: at […]

如何将GET参数传递给Retrofit请求

我正在使用SoundCloud api创建一个应用程序并尝试追加用户输入的字符串值,但它在界面中显示为null如何将其追加到url中? MainActivity.java b.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View p1) { // TODO: Implement this method search = et.getText().toString(); Log.d(“search”,search); Intent i = new Intent(MainActivity.this, SoundCloud.class); i.putExtra(“mysearch”, search); startActivity(i); Log.d(“CustomUrl”,SCService.CustomUrl); Toast.makeText(MainActivity.this,””+SCService.CustomUrl,Toast.LENGTH_SHORT).show(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(Config.API_URL) .addConverterFactory(GsonConverterFactory.create()).build(); SCService Scservice = retrofit.create(SCService.class); Call call = Scservice.getTrack(search); call.enqueue(new Callback(){ @Override public void onResponse(Call call, Response response) […]

构建一个在内部使用Retrofit的库,包装响应

我正在尝试构建一个基本上包装我们的api的库。 基本上,我想要的结构是这样的: MySDK mySDK = new MySDK(“username”, “password”); mySDK.getPlaylistInfo(“3423”, 2323, new CustomCallback(){ //on response //on failure }); 因此,对于vanilla Retrofit,api调用通常类似于以下内容: ApiService api = retrofit.create(ApiService.class); Call call = api.getPlaylistInfo() call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { //handle response } @Override public void onFailure(Call call, Throwable t) { //handle failure } }); 基本上,我如何将改装回调系统包装到我自己的系统中? 注意,需要这样做的原因是在传递最终响应之前预处理从api返回的数据。

如何配置Square的Retrofit Client来处理具有可变数量参数的请求

我正在构建一个Android应用程序,并使用Square的Retrofit库进行短期网络调用。 我对Java和Android比较陌生。 到目前为止,我已经构建了这样的请求: @GET(“/library.php”) void library( @Query(“one_thing”) String oneThing, @Query(“another_thing”) String anotherThing, Callback<Map> callback ); 并称它们为: service.library(oneThing, anotherThing, callback); 我需要实现一个接受可变数量参数的请求,不超过10个左右。 必须单独定义它们并为给定请求不存在的那些传递null或其他东西是很麻烦的。 有没有办法为请求定义一个接口,以便它接受一个或多个变量参数,并为参数字典/映射中的每个元素自动构造@Query ? 像这样的东西: @GET(“/library.php”) void library( Map parameters, Callback<Map> callback ); service.library(parameters, callback); 提前感谢任何提示。 编辑:为与请求无关的参数传递null在这种情况下不起作用。 理想情况下,我可以根据参数字典设置/创建@Query ,这样如果键值为null,键就不会成为@Query 。 编辑:我特意寻找适用于GET请求的解决方案。

如何在对象键为数字时创建Java getter和setter

我无法创建Java Getters和Setters,因为我的Object Key有数字(数字)。 我将向您展示我的API响应。 如何在不更改API的情况下实现此目的。 {“api_status”: true, “message”: “”, “data”: { “0”: { “id”: “aaa”, “name”: “aaa”, “address”: “aaa”, “category”: “aaa”, “open_24_hours”: “aaa”, “business_open”: “”, “business_close”: “”, “type”: “0”, “title”: null, “latitude”: “6.8729428”, “longitude”: “79.8689013”, “city”: “”, “distance”: “2.95555089735992” }, “1”: { “id”: “bbb”, “name”: “bbb”, “address”: “bbb”, “category”: “bbb”, “open_24_hours”: “bbb”, “business_open”: “”, “business_close”: […]

改进如何打印响应JSON

我正在使用Retrofit,我希望能够访问从服务器返回的JSON响应。 有人可以告诉我。 谢谢

如何在改造中发送byte 数组

如何在改装调用中发送byte []数组。 我只需要通过byte []发送。 当我试图发送改装电话时,我得到了这个例外。 retrofit.RetrofitError:retrofit.converter.ConversionException:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:期望一个字符串但在第1行第2列是BEGIN_OBJECT 我可以使用改造来进行呼叫的方式是什么。 我只是将字节数组作为封装在对象类中的ByteMessage传递。 public class ByteMessage { private byte[] byteArray; byte[] getByteArray(){ return byteArray; } setByteArray(byte[] bytes){ byteArray=bytes; } } @POST(“/send”) sendBytes(ByteMesssage msg); server side sendBytes(ByteMessage msg){ byte[] byteArray=msg.getByte(); …doSomething… } 我无法在堆栈上找到资源溢出或谷歌搜索通过改进调用传递字节数组的正确解决方案。 任何人都可以帮助这个。 谢谢Dhiren

改造覆盖端点

我可以覆盖RestAdapter构建器上设置的端点路径吗? 所以说我有20个端点使用相同的基本URL,但有1个端点没有。 我想调用setEndpoint来使用所有20个,但是在我需要使用不同基本URL的情况下覆盖。 Builder builder = new RestAdapter.Builder().setEndpoint(“http://url”); 使用构建器上的端点路径集: @GET(“/relative Something getClip(); 使用绝对路径(不起作用): @GET(“http://absolute/path”) Something getAlert();

使用Retrofit反序列化带有文本和子标签的XML标记

我正在使用Retrofit和SimpleXML来解析来自某些公共API的XML响应。 我一直在很好地处理所有内容,直到我偶然发现包含自由文本和子标记的XML标记 – 如以下示例所示: Some free-style text Even more text! 为了尝试使用Simple-XML注释进行反序列化,我有两种方法。 请记住,基本上’a’是一个条目标签列表 : 首先: @ElementList(entry = “a”, inline = true, required = false) List aList; ‘A’定义如下: public static class A { @Text(required = false) protected String a; } 这很好地读取了自由文本部分,但任何尝试反序列化’b’标记的内容(例如,通过将@Element w或w / o @Path注释成员添加到类’A’)都失败了。 我查看了SimpleXML文档,显然使用@Text存在限制: 管理Text注释使用的规则是每个模式类只能有一个。 此外,此注释不能与Element注释一起使用。 只有属性注释可以与它一起使用,因为此注释不会在拥有元素中添加任何内容。 第二种方法,更简单: @ElementList(entry = “a”, inline = true, required […]