@POST("/vistek/myservice.php")
Call<String> send(@Part("myFile") RequestBody file);
OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
HttpLoggingInterceptor interceptor2 = new HttpLoggingInterceptor();
interceptor2.setLevel(HttpLoggingInterceptor.Level.HEADERS);
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
httpClient.addInterceptor(interceptor);
httpClient.addInterceptor(interceptor2);
以及我向服务器发送图像的函数:
public void sendImage(byte[] data)
{
MediaType MEDIA_TYPE_JPEG = MediaType.parse("image/jpeg");
FileUploadService service = ServiceGenerator.createService(FileUploadService.class);
RequestBody requestBody = RequestBody.create(MEDIA_TYPE_JPEG, data);
Call<String> call = service.send(requestBody);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, retrofit2.Response<String> response) {
Log.d("Upload", "success = " + response.body());
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.d("Upload","failure: " + t.getMessage());
}
});
}
在调用函数之后,我得到了奇怪的响应,类似于这样:
JFIF C C“
04-12 17:30:11.144 116 69-13785/mmlab.visualsearch d/okhttp:}!1AQA”Q2#b r$3 br
04-12 17:30:11.144 116 69-13785/mmlab.visualsearch d/okhttp:%&'()*456789:cdefghija stuvwxyzcdefghijstuvwxyz
04-12 17:30:11.144 116 69-13785/mmlab.visualsearch d/okhttp:w!1aqaq“2 b#3 r br
当我用Postman测试api时,我的服务器工作正常:
POST /vistek/myservice.php HTTP/1.1
Host: demo.mmlab.uit.edu.vn
Cache-Control: no-cache
Postman-Token: ba965fb1-f7b9-7344-8b8a-ab46095668d1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="myFile"; filename=""
Content-Type:
----WebKitFormBoundary7MA4YWxkTrZu0gW
请帮助我知道我的代码发生了什么。提前谢了。
这不是奇怪的反应。它是压缩的(gzip)。
似乎您已经在header
中添加了“accept-encoding”、“gzip”
到请求中。在这种情况下,您有责任解压缩响应。
所以你能做的是:
StringBuilder stringBuilder = new StringBuilder();
ByteArrayInputStream bais = new ByteArrayInputStream(response.body().getBytes());
GZIPInputStream gzis = new GZIPInputStream(bais);
InputStreamReader reader = new InputStreamReader(gzis);
BufferedReader in = new BufferedReader(reader);
String readed;
while ((readed = in.readLine()) != null) {
stringBuilder.append(readed);
}
in.close();
reader.close();
gzis.close();
String unZippedResponse = stringBuilder.toString();
我想上传一张图片,我正在使用http。客户端()用于发出请求, 请求的主体和编码部分应该是什么?
我在尝试将swift中的图像上载到PHP服务器时遇到问题。在php处理文件之前,一切看起来都很好。在那一刻,我得到了错误。 swft代码的相关部分是: php是 最后,我得到的错误是: ******响应数据= 上载失败
问题内容: 我正在尝试从Android设备将文件上传到php服务器。有相同问题的话题,但他使用的是不同的方法。我的Android辅助代码运行正常,并且未显示任何错误消息,但服务器未收到任何文件。这是我的示例代码,我在网上找到了。 和我的PHP服务器端代码如下 Apache正在运行。当我运行服务器时,出现此错误消息。上传文件时出错,请重试!我已经在eclipse中检查了日志数据,我认为是套接字问题,
本文向大家介绍PHP实现上传图片到 zimg 服务器,包括了PHP实现上传图片到 zimg 服务器的使用技巧和注意事项,需要的朋友参考一下 最近我们项目需要一台图片服务器存储用户头像,我们使用 zimg 处理和存储图片,下面简单介绍一下如何使用 PHP 上传图片到 zimg,并获取相应图片的返回信息 使用 curl 库实现上传 根据 zimg 使用文档,我们想要让 zimg 返回 json 信息,
我正在用Laravel5.6构建一个表单,在其中我保存了一个名字和一个用户照片,但我需要将照片与用户名一起存储。我展示了我商店的代码 我可以使用$request->nombre获得用户名; 但我不知道怎么给照片取名字
是否可以使用server1将文件上传到server2? 访客请访问:我的网站。com(server1) 然后他将一个文件上传到server1,server1会自动将该文件上传到server2?? 或者简单地说,用户可以使用server1作为代理将文件上传到server2,因为server2只能从server1访问 会有帮助吗,还是有其他更好的解决方案?