Get WCF REST GET request in Android
Asked Answered
H

1

0

When I call to my WCF service using andoroid volley library it throw TimeOut Exception. This is my code. What is the error of this code.

RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
String URL = "http://192.168.42.200:10963/DisasterService.svc/type/findDisType";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL, null,
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {

                     Toast.makeText(getApplicationContext(),"Ok",Toast.LENGTH_SHORT).show();
                     Toast.makeText(getApplicationContext(),response.toString(),Toast.LENGTH_SHORT).show();
                } catch (Exception e) {
                    Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show();
                }
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(),error.toString(),Toast.LENGTH_SHORT).show();
            }
        });
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(30000, 1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(jsonObjectRequest);

WCF Service endpoint

 <service name="DisasterServices.DisasterService" behaviorConfiguration="DisasterServices_Behavior">

        <endpoint address="area" binding="webHttpBinding" contract="DisasterServices.IAreaService"></endpoint>
        <endpoint address="type" binding="webHttpBinding" contract="DisasterServices.IDisasterTypeService"></endpoint>
        <endpoint address="suggestion" binding="webHttpBinding" contract="DisasterServices.ISuggestion"></endpoint>
        <endpoint address="user" binding="webHttpBinding" contract="DisasterServices.Iuser"></endpoint>
        <endpoint address="alerts" binding="webHttpBinding" contract="DisasterServices.IUserAlerts"></endpoint>

      </service>

Interface - IDisasterTypeService
Method need to call - GetAllDisasterType

Holmium answered 8/4, 2016 at 6:21 Comment(6)
it seems that it times out. what are the serverlogsEhlke
Can I call this service usign KSOAP2 library?Holmium
since you return json i dont see a reason why using ksoap2 + soap is getting old and less supported. This however is not you issue. when you have a timeout you have to check on the server why is it happening.Ehlke
I updated question with WCF code. Any idea?Holmium
@IshanFernando Is this a SOAP service? If yes, did you try with ksoap2? Is the requests being timed out?Hippocrene
Problem solved. I added some configuration ti IIS application host file.Holmium
H
0

I found the solution for this. I added some binding to applicationhost.config file in IIS server.

<site name="myservice" id="5">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="E:\vs\myservice" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:10963:127.0.0.1" />
                <binding protocol="http" bindingInformation="*:8085:127.0.0.1" />
                <binding protocol="http" bindingInformation="*:8085:192.168.42.200" />
            </bindings>

Then I installed iis proxy and change the port to proxy

npm install -g iisexpress-proxy
iisexpress-proxy 10963 to 8085

10963 is the port which application run and the 8085 is the proxy port

Final I changed my URL in android application

String URL = "http://192.168.42.200:8085/myservice.svc/test/2";

more information

Holmium answered 10/4, 2016 at 17:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.