我正在使用一个我无法控制的API
,以及最近加入一个使用Retrofit1
的开发团队。
我无法以所需的格式将请求发送到服务器,因为服务器需要以下格式的多部分表单数据正文:
Uniqueidentifier:FileName.jpg:ReroutServerIP:Base64EncodedDocString.
为了完成这项任务,我尝试了许多不同的技术,但我找不到任何工作方法来做到这一点。服务器告诉我不支持该消息格式。这是我当前的代码(去除了 url)。请有人帮忙吗?
@POST("URL")
public Response post_SendData(@Header("Content-Type") String ContentType, @Body String body);
为了达到预期的结果,我可以使用没有标题的邮递员,并使用表单数据发布方法从我的系统发布文件。在工作邮递员帖子中,键是上面提到的格式化字符串,值是从我的桌面选择的文件。请参阅下面的邮递员(编辑以删除网址)。
邮差
非常感谢大家。
如果要
将文件发送到服务器:
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);
}
这是接口 发送媒体接口 :
public interface SendMediaApiInterface {
@Multipart
@POST("url")
void sendImage(@Part("here_is_the_attribute_name_in_webservice") TypedFile attachments, Callback<YourObject> response);}