我想上传两个视频和一些文本字段到改造库使用多部分发布方法,如何使用android改造库发送值
API接口
@Headers({"Accept: application/json"})
@Multipart
@POST("event")
Call<ResponsePojo> submitData(@Part MultipartBody.Part video,
@Part("device_id") String device_id,
@Part("lat") String lat,
@Part("lng") String lng,
@Part("speed") String speed,
@Part("event_type") String event_type,
@Part MultipartBody.Part videolarge);
ResponsePoja模型类
public class ResponsePojo {
@SerializedName("fileData")
@Expose
private String fileData;
@SerializedName("device_id")
@Expose
private String device_id;
@SerializedName("lat")
@Expose
private String lat;
@SerializedName("lng")
@Expose
private String lng;
@SerializedName("speed")
@Expose
private String speed;
@SerializedName("event_type")
@Expose
private String event_type;
public ResponsePojo(String fileData, String device_id, String lat, String lng, String speed, String event_type) {
this.fileData = fileData;
this.device_id = device_id;
this.lat = lat;
this.lng = lng;
this.speed = speed;
this.event_type = event_type;
}
public String getFileDatasmall() {
return fileData;
}
public void setFileDatasmall(String fileDatasmall) {
this.fileData = fileDatasmall;
}
public String getDevice_id() {
return device_id;
}
public void setDevice_id(String device_id) {
this.device_id = device_id;
}
public String getLat() {
return lat;
}
public void setLat(String lat) {
this.lat = lat;
}
public String getLng() {
return lng;
}
public void setLng(String lng) {
this.lng = lng;
}
public String getSpeed() {
return speed;
}
public void setSpeed(String speed) {
this.speed = speed;
}
public String getEvent_type() {
return event_type;
}
public void setEvent_type(String event_type) {
this.event_type = event_type;
}
波纹管发送按钮点击方法,当我点击时上传所有数据保存到服务器
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(100, TimeUnit.SECONDS)
.readTimeout(100,TimeUnit.SECONDS).build();
Retrofit builder = new Retrofit.Builder()
.baseUrl(API.BaseUrl).client(client)
.addConverterFactory(GsonConverterFactory.create(new Gson())).build();
API api = builder.create(API.class);
//create file which we want to send to server.
File videoFIle = new File(String.valueOf(realUri));
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), videoFIle);
MultipartBody.Part image = MultipartBody.Part.createFormData("fileData", videoFIle.getName(), requestBody);
Call<ResponsePojo> call = api.submitData(image, "1, ", "4.667566", "54.54448", "5457", "2",image);
call.enqueue(new Callback<ResponsePojo>() {
@Override
public void onResponse(Call<ResponsePojo> call, Response<ResponsePojo> response) {
ResponsePojo body = response.body();
Toast.makeText(getApplicationContext(), String.valueOf("Code "+response.message()), Toast.LENGTH_SHORT).show();
pd.dismiss();
}
@Override
public void onFailure(Call<ResponsePojo> call, Throwable t) {
Toast.makeText(getApplicationContext(), "File "+t.toString(), Toast.LENGTH_SHORT).show();
pd.dismiss();
}
});
邮递员发送请求方法
如果您使用的是@POST
并想使用@part
发送数据,您需要在发送之前先将其转换为Request estbody
。执行以下更改
在请求代码中
Call<ResponsePojo> submitData(@Part MultipartBody.Part video,
@Part("device_id") RequestBody device_id,...
在调用此方法之前,您需要将参数转换为请求体
RequestBody device_id = RequestBody.create(
MediaType.parse("text/plain"),
device_id);
现在,如上面提到的方法调用中所述,使用此变量。
在某些情况下,此错误基本上与路径(@Path)有关。因此,请检查您的请求路径,就像@Path(“/event”)一样。
根据响应代码,客户端能够与给定的服务器通信,但服务器找不到请求的内容。
所以,在这种情况下,我们应该检查路径和参数,我们发送的是什么。
对于此实例,404表示此URL没有API。
也许,您的URL需要是http://192.168.0.105/register/
而不是http://192.168.0.105/register
或者可能是格式错误。例如,http://192.168.0.105//register/
问题内容: 我想将所有错误定向到我的Errorsevlet,而无需明确指定所有代码。有什么办法可以这样做吗? 到达ErrorServlet后,如何获取servlet中错误的堆栈跟踪。这样一发生错误,我就可以通过电子邮件发送详细信息。 问题答案: 试试这个,所有错误都会被捕获(500个)而不是404等
我是新的改装,我想上传一张带有不同参数的图片,比如name,dob,mobile。我不知道我错在哪里,请引导我。我遵循这个链接 这是我的代码 接口 上传代码
本文向大家介绍C# Partial:分部方法和分部类代码实例,包括了C# Partial:分部方法和分部类代码实例的使用技巧和注意事项,需要的朋友参考一下 这段代码只会输出:Hello,并且不会造成编译错误。
我在几周内甚至没有接触代码,并说它属于Arraylist之后,就出现了这个错误。这就是我犯的错误。 JAVAlang.RuntimeException:无法启动活动组件信息{com.example.android.login/com.example.android.login.MainActivity}:java。lang.IndexOutOfBoundsException:索引0无效,andro
本文向大家介绍MySql 修改密码后的错误快速解决方法,包括了MySql 修改密码后的错误快速解决方法的使用技巧和注意事项,需要的朋友参考一下 设置好密码后,使用数据库时出现如下错误: ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re executing this statemen
每次尝试通过Retrofit发送POST请求时,我都有500个内部服务器错误。当我发送GET请求时对我有用。下面的代码在kotlin中。 代码 RestClient 但是当我在POSTMAN中尝试POST时工作正常。我得到正确的响应,我不知道我哪里做错了。 提前感谢您