添加DOCTYPE以改进POST xml请求正文

时间:2017-12-04 01:29:02

标签: java xml retrofit2

我正在使用改造2和java来进行API调用。我已经成功发出了一些POST请求,但是尝试添加新的呼叫让我很难过。

所需的身体如下:

       xmlhttp.open('GET', PHOTO_URL, true);
       xmlhttp.responseType = 'blob';

       xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    var blob = xmlhttp.response;
                    photoImg.src = window.URL.createObjectURL(blob);
                    setTimeout(setOnCampusImage,0);     
                } else {
                    photoImg.src = 'unknown.png';
                }
            }
        }

我可以使用常用的@Root,@ Path和@Element simpleframework.xml注释构建请求体的mainPart,但不知道如何添加DOCTYPE线。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

我找不到使用注释来构建xml对象的任何好方法,因此解决方法是将xml创建为字符串,然后将其解析为text / plain以创建okhttp3 RequestBody和.execute。< / p>

String xml = "<!DOCTYPE ourapi SYSTEM \"dtdName.dtd\">\n" +
            "<otherStuff>"\n+
            "</otherStuff>";


RequestBody requestBody = 
         RequestBody.create(MediaType.parse("text/plain"), xml);

return ourApi.post(requestBody).execute();