Запрос на мыло получает ошибку 403 - PullRequest
0 голосов
/ 29 мая 2018

Я сделал запрос на мыло, используя библиотеку Ksoap2 для ниже. Я получаю код ответа как 403, используя этот код. Я искал и обнаружил, что библиотека Ksoap2 полезна при интеграции с SOAP API в Android. Но я не могувыяснить проблему.

Запрос SOAP API:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="myUrl">
                      <soapenv:Header/>
                      <soapenv:Body>
                        <GetClients>
                          <Request>
                            <SourceCredentials>
                              <SourceName>{SourceName}</SourceName>
                              <Password>{Password}</Password>
                              <SiteIDs>
                                <int>{SiteID}</int>
                              </SiteIDs>
                            </SourceCredentials>
                            <XMLDetail>Full</XMLDetail>
                            <PageSize>0</PageSize>
                            <CurrentPageIndex>0</CurrentPageIndex>
                          </Request>
                        </GetClients>
                      </soapenv:Body>
                    </soapenv:Envelope>

Мой код Android:

 SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

                SoapObject sourcecredentials = new SoapObject(SOAP_ACTION, "SourceCredentials");
                PropertyInfo info = new PropertyInfo();
                info.setName("SourceName");
                info.setValue("MySourceName");
                sourcecredentials.addProperty(info);

                PropertyInfo info2 = new PropertyInfo();
                info2.setName("Password");
                info2.setValue("myPassword");
                sourcecredentials.addProperty(info2);

               PropertyInfo info3 = new PropertyInfo();
                info3.setName("SiteIDs");
                info3.setValue(MySiteid);
                sourcecredentials.addProperty(info3);

              //This also I tried
                /*SoapObject soapSiteids = new SoapObject(NAMESPACE, "SiteIDs");
                soapSiteids.addProperty("int", MySiteId);
                sourcecredentials.addProperty("SiteIDs",soapSiteids);*/

                request.addProperty("SourceCredentials", sourcecredentials);

                request.addProperty("XMLDetail", "Full");
                request.addProperty("PageSize", "10");
                request.addProperty("CurrentPageIndex", "0");
                request.addProperty("ScheduleType", "Appointment");


                SoapSerializationEnvelope envelope =  new SoapSerializationEnvelope(SoapEnvelope.VER11);
                envelope.setOutputSoapObject(request);

                HttpTransportSE httpTransportSE = new HttpTransportSE("My WSDL Url");

                try {
                    httpTransportSE.call(SOAP_ACTION, envelope);
                    SoapPrimitive soapPrimitive = (SoapPrimitive)envelope.getResponse();
                    result = soapPrimitive.toString();
                } catch (Exception e) {
                    e.printStackTrace();
                }

Получается ошибка http 403, когда я так поступаюПожалуйста, помогите мне, если я делаю что-то не так в коде выше. Заранее спасибо

1 Ответ

0 голосов
/ 29 мая 2018

Когда вы звоните в службу и получаете 403 ошибки, это может произойти по следующим причинам.

  1. User-agent или какой-либо другой заголовок в вашем запросе вызываетсервис для отклонения соединения.Возможно, отсутствует заголовок?
  2. Вы отправляете учетные данные для аутентификации, но учетная запись заблокирована / отключена.
  3. Удаленный хост, на котором вы находитесь, блокируется брандмауэром.
  4. ВыДостигнуто ограничение на количество вызовов к веб-службе, и они блокируют любые дальнейшие подключения
...