如何使用volley android将RAW正文传递给API

时间:2016-08-18 16:38:04

标签: android android-volley

enter image description here我正在尝试使用我的XML类型的api来发布body。请看下面的身体!我不知道如何使用api传递xml体

<passwordQuestions>
   <passwordQuestion question="security.question.childhood.nickname" answer="nickname"/>
   <passwordQuestion question="security.question.father.middleName" answer="father.middleName"/>
   <passwordQuestion question="security.question.oldestSibling.middleName" answer="oldestSibling.middleName"/>
</passwordQuestions>

type: 
Content-Type text/xml

这是我的代码需要在这里添加body!

public void setSeqQns(String oldAPIEmail, String token,String appKey, String mLocale, String firstQuestion, String firstAnswer,
                          String secondQuestion, String secondAnswer, String thirdQuestion, String thirdAnswer,
                          final Action1<String> onUpdateSetAnswerSuccess, final Action1<String> onUpdateSetAnswerFail) {

        if(userId == null){
            Log.e(TAG, "userId is null");
            Observable<String> observable = Observable.just("userId is null");
            observable.subscribe(onUpdateSetAnswerFail);
            return;
        }

        String url = BASE_URL + Util.addUseridToUri(URI_SET_ANSWER, userId);

        Response.Listener<String> listener =
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Log.v(TAG, "Update seq qns response: "+ response);
                        Observable<String> observable = Observable.just(response);
                        observable.subscribe(onUpdateSetAnswerSuccess);
                    }
                };

        Response.ErrorListener errorListener = new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                String errorCode = null;

                if (error.networkResponse != null) {
                    Map<String, String> headers = error.networkResponse.headers;
                    if (headers != null) {
                        errorCode = headers.get(PulseAPIConstants.HEADER_XIcErrorCode);
                        Log.e(TAG, "received error code: " + errorCode);
                    }
                }

                // observes this API request and will call the loginFailure action
                Observable<String> observable = Observable.just(errorCode);
                observable.subscribe(onUpdateSetAnswerFail);
            }
        };

        AuthenticatedGsonRequest<String> request = new AuthenticatedGsonRequest<>(
                Request.Method.POST,
                url,
                new TypeToken<String>() {}.getType(),
                null,
                listener,
                errorListener,
                oldAPIEmail,
                token,
                appKey,
                mLocale);

        addToRequestQueue(request, TAG_SET_ANSWER);
    }

我需要将xml(RAW正文数据)添加到URI。

谢谢!

0 个答案:

没有答案