繁体   English   中英

我遇到凌空400错误

[英]I am getting volley 400 error

/* I have to send json object on Sever for which I have implemented following things but I am getting volley 400 error. */


package com.example.administrator.crmtestapp;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.android.volley.AuthFailureError;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.ServerError;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.HttpHeaderParser;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;

public class BP_Details extends AppCompatActivity implements View.OnClickListener {
    SearchView searchView;
    EditText bpCode, bpName, bpAddress1, bpAddress2, bpCity, bpState, bpCountry, payTerm,
                zipNum, etarea, emailId, tinNum, cstNum, panNum, mobileNum, customerLocation, salesPersonNum;
    String code,name,address1,address2,city,state,country,zip,area,email,tin,cst,pan,mobile,cLocation,salesPname,pTerm;
    Toolbar toolbar;
    String s="CBS";
    String s1="NOIDA";
    int currency=1;
    Button btn;
    int finalCurrency;
    String curency;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.bp__details);
        toolbar= (Toolbar) findViewById(R.id.my_toolbar);

        setSupportActionBar(toolbar);
        bpCode = (EditText) findViewById(R.id.bp_code);
        bpName = (EditText) findViewById(R.id.bp_name);
        bpAddress1 = (EditText) findViewById(R.id.address1);
        bpAddress2 = (EditText) findViewById(R.id.address2);
        bpCity = (EditText) findViewById(R.id.bp_city);
        bpState = (EditText) findViewById(R.id.bp_state);
        bpCountry = (EditText) findViewById(R.id.bp_country);
        payTerm = (EditText) findViewById(R.id.payterm);
        zipNum = (EditText) findViewById(R.id.zip);
        etarea = (EditText) findViewById(R.id.area);
        emailId = (EditText) findViewById(R.id.email_id);
        /*currency = (EditText) findViewById(R.id.currency);*/
        tinNum = (EditText) findViewById(R.id.tin_no);
        cstNum = (EditText) findViewById(R.id.cst_no);
        panNum = (EditText) findViewById(R.id.pan_no);
        mobileNum = (EditText) findViewById(R.id.mobile_num);
        customerLocation = (EditText) findViewById(R.id.customer_location);
        salesPersonNum = (EditText) findViewById(R.id.salesperson_no);
        searchView=(SearchView) findViewById(R.id.sear);
        btn=(Button)findViewById(R.id.btnAdd);
        btn.setOnClickListener(this);
        searchView.requestFocus();

        code = bpCode.getText().toString().trim();
        name=bpName.getText().toString().trim();
        address1=bpAddress1.getText().toString().trim();
        address2=bpAddress2.getText().toString().trim();
        city=bpCity.getText().toString().trim();
        state=bpState.getText().toString().trim();
        country=bpCountry.getText().toString().trim();

        // pTerm=payTerm.getText().toString();

        zip=zipNum.getText().toString().trim();
        area=etarea.getText().toString().trim();
        email=emailId.getText().toString().trim();
        /*curency=currency.getText().toString().trim();
        finalCurrency=Integer.parseInt(curency.trim());*/
        tin=tinNum.getText().toString().trim();
        cst=cstNum.getText().toString().trim();
        pan=panNum.getText().toString().trim();
        mobile=mobileNum.getText().toString().trim();
        cLocation=customerLocation.getText().toString().trim();
        salesPersonNum.getText().toString().trim();                
    }

    @Override
    public void onClick(View v) {
        if (v.getId()==R.id.btnAdd){
            RequestQueue requestQueue = Volley.newRequestQueue(BP_Details.this);

            String    URL="http://103.75.33.98/BPService/GetAllBPService.svc/SetAllBP";

            JSONObject jsonBody = new JSONObject();

            try {

                jsonBody.put("COMPANY_NO",s);
                jsonBody.put("LOCATION_NO",s1);
                jsonBody.put("BP_CODE",code);
                jsonBody.put("NAME",name);
                jsonBody.put("ADDRESS1",address1);
                jsonBody.put("ADDRESS2",address2);
                jsonBody.put("CITY",city);
                jsonBody.put("STATE",state);
                jsonBody.put("COUNTRY",country);
                jsonBody.put("ZIP",zip);
                jsonBody.put("AREA_CODE",area);
                jsonBody.put("EMAIL",email);
                jsonBody.put("CURRENCY",currency);
                jsonBody.put("TIN_GRN",tin);
                jsonBody.put("CST_NO",cst);
                jsonBody.put("PAN_NO",pan);
                jsonBody.put("SALES_PERSON_NO",salesPname);
                jsonBody.put("PHONE_NO",mobile);
                jsonBody.put("LOCATION",cLocation);
            }catch (JSONException e){
                e.printStackTrace();
            }
            final String mRequestBody = jsonBody.toString();
            StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.i("response", response);
                }

            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.e("LOG_VOLLEY", error.toString());
                    // As of f605da3 the following should work
                    NetworkResponse response = error.networkResponse;
                    if (error instanceof ServerError && response!=null){
                        try {
                            String res=new String(response.data,HttpHeaderParser.parseCharset(response.headers));            

                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }
            }){
                @Override
                public String getBodyContentType() {
                    return "application/json;/*charset=utf-8*/";
                }

                @Override
                public byte[] getBody() throws AuthFailureError {
                    try {
                        return mRequestBody == null ? null : mRequestBody.getBytes("utf-8");
                    }catch (UnsupportedEncodingException uee) {
                        VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", mRequestBody, "utf-8");
                        return null;
                    }
                }
                @Override
                protected Response<String> parseNetworkResponse(NetworkResponse response) {
                    String responseString = "";
                    if (response != null) {
                        responseString = String.valueOf(response.statusCode);
                    }
                    return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response));
                }
            };
            requestQueue.add(stringRequest);
            }

    }
}

我正在获取以下logcat信息:05-25 10:23:06.709 16158-18055 / com.example.administrator.crmtestapp E / Volley:[341] BasicNetwork.performRequest: http ://103.75.33.98/的意外响应代码400 BPService / GetAllBPService.svc / SetAllBP 05-25 10:23:06.710 16158-16158 / com.example.administrator.crmtestapp E / LOG_VOLLEY:com.android.volley.ServerError 05-25 10:26:47.326 21337-21337 /? E / cutils-trace:打开跟踪文件时出错:权限被拒绝(13)* /

使用邮递员检查。 https://www.getpostman.com/回应。

尝试通过以下方式发送请求:

RequestQueue requestQueue = Volley.newRequestQueue(BP_Details.this);
StringRequest strReq = new StringRequest(Request.Method.POST,
            URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.i("response", response);
        } 
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Login Error: " + error.getMessage());
            Toast.makeText(getApplicationContext(),
                    error.getMessage(), Toast.LENGTH_LONG).show();
        }
    }){

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Log.e(TAG,"Inside getParams");

            // Posting parameters to url
            Map<String, String> jsonBody = new HashMap<>();
            jsonBody.put("COMPANY_NO",s);
            jsonBody.put("LOCATION_NO",s1);
            jsonBody.put("BP_CODE",code);
            jsonBody.put("NAME",name);
            jsonBody.put("ADDRESS1",address1);
            jsonBody.put("ADDRESS2",address2);
            jsonBody.put("CITY",city);
            jsonBody.put("STATE",state);
            jsonBody.put("COUNTRY",country);
            jsonBody.put("ZIP",zip);
            jsonBody.put("AREA_CODE",area);
            jsonBody.put("EMAIL",email);
            jsonBody.put("CURRENCY",currency);
            jsonBody.put("TIN_GRN",tin);
            jsonBody.put("CST_NO",cst);
            jsonBody.put("PAN_NO",pan);
            jsonBody.put("SALES_PERSON_NO",salesPname);
            jsonBody.put("PHONE_NO",mobile);
            jsonBody.put("LOCATION",cLocation);

            return params;
        }
    };
    // Adding request to request queue
    queue.add(strReq);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM