Android Ошибка пропущенного параметра Studio при вызове POST с параметрами - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь вызвать веб-службу (asmx) с параметрами, но получаю ответ «Отсутствует параметр: Lane». приведенный ниже код - это то, что я использую

final HttpClient Client = new DefaultHttpClient();
        String jsonstring = "", step = "0";
        try { 
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("Lane", "1"));
            params.add(new BasicNameValuePair("Name", "Test test")); 

            HttpPost httppostreq = new HttpPost(url);  

            httppostreq.setEntity(new UrlEncodedFormEntity(params));

            HttpResponse httpresponse = Client.execute(httppostreq);

            jsonstring = EntityUtils.toString(httpresponse.getEntity());

. Я могу вызвать веб-сервис с помощью почтальона, когда добавляю параметры в заголовок и задаю «Тип контента: приложение / x- www-form-urlencoded», но не могу заставить его работать в Android Studio

enter image description hereenter image description here

Это код в моем веб-сервисе:

   [WebMethod]
    public void MyTestService(string Lane, string Name)
    {
            Dictionary<string, object> parameter = new Dictionary<string, object>();
            parameter.Add("@lane", Lane);
            parameter.Add("@name", Name);

            DataSet dt = DataAccess.executeStoreProcedureDataSet("sp_GetLaneName", parameter);
            string jsonReturned = JsonConvert.SerializeObject(dt, Formatting.Indented);
            Context.Response.ContentType = "text/plain; charset=UTF-8";
            Context.Response.Write(jsonReturned);           
    }

1 Ответ

0 голосов
/ 11 марта 2020

Добавьте заголовок к вашему запросу ниже

httppostreq.setHeader(HTTP.CONTENT_TYPE,
                    "application/x-www-form-urlencoded;charset=UTF-8");
...