我使用的是API
,这是我无法控制的,最近加入了一个使用Retrofit1
的开发团队。
我无法以所需格式向服务器发送请求,因为服务器需要以下列格式的多部分表单数据Body:
Uniqueidentifier:FileName.jpg:ReroutServerIP:Base64EncodedDocString.
为了完成这项任务,我尝试了很多不同的技术,但我找不到任何有效的方法。服务器告诉我不支持消息格式。这是我当前的代码(删除了url)。请有人帮忙吗?
@POST("URL")
public Response post_SendData(@Header("Content-Type") String ContentType, @Body String body);
为了达到理想的效果,我可以使用没有标题的邮递员,并使用form-data post方法从我的系统发布文件。在工作邮递员帖子中,Key是上面提到的格式化字符串,值是从我的桌面选择的文件。请参阅下面的邮递员(编辑删除网址)。
非常感谢你们。
答案 0 :(得分:0)
如果要将文件发送到服务器:
fn decode(&mut self, buf: &mut BytesMut) -> Result {
if !self.initialized {
println!(
"new connection from {:?} to {:?}",
self.peer_addr,
self.local_addr
);
self.requests.push(SmtpCommand::Connect {
local_addr: self.local_addr,
peer_addr: self.peer_addr,
});
self.initialized = true;
}
//... snip
match self.requests.is_empty() {
true => Ok(None),
false => Ok(Some(self.requests.remove(0))),
}
}
这是接口SendMediaApiInterface:
public void uploadPictureRetrofit(File file, Callback<YourObject> response) {
// this will build full path of API url where we want to send data.
RestAdapter restAdapter = new RestAdapter
.Builder()
.setEndpoint(YOUR_BASE_URL)
.setConverter(new SimpleXMLConverter()) // if the response is an xml
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
// SubmitAPI is name of our interface which will send data to server.
SendMediaApiInterface api = restAdapter.
create(SendMediaApiInterface.class);
TypedFile typedFile = new TypedFile(MULTIPART_FORM_DATA, file);
api.sendImage(typedFile, response);
}