@Gregary

Как тестировать Android клиент для ASP.net web api?

Разработал небольшое приложение на asp.net web api. Тестирую его в браузере, получаю Json все хорошо. Разработал клиента на Андроиде, которые просто должен отправлять Get-запрос. Но не могу протестить. При нажатии на кнопку метод выполняется, но при просмотре в Фидлере ничего не происходит. Как узнать что все работает или не работает? Вот код клиента
public class HttpClientTest extends Activity
{

    EditText Resultat;
    sendFormTask sendForm;
    Button btnOk;

    static public String url = "http://localhost:3815/api/values/CreateBook";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_http_client);
        btnOk = (Button) findViewById(R.id.btnOk);
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.http_client, menu);
        return true;
    }

    public void sendMessage (View view)
    {
        String someUrl;
        someUrl = "http://localhost:3815/api/values/CreateBook";
        sendData("http://localhost:3815/api/1");
    }

    public void sendData(String URLString)
    {
        new sendFormTask().execute(URLString);
    }

    class sendFormTask extends AsyncTask<String, Boolean, Boolean>
    {
        @Override
        protected Boolean doInBackground(String... urls) {
            // Create a new HttpClient and Post Header
            String URLString = urls[0];
            HttpClient httpclient = new DefaultHttpClient();
            HttpGet request = new HttpGet(URLString);

            try {
                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("Балто", "1"));


                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(request);
                Log.e("DEBUG:", "REQUEST SENT");
            }

            catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }
            return true;
        }
    }
}
  • Вопрос задан
  • 2631 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Gregary Автор вопроса
Вобщем разобрался.
1) для начала нужно установить вай-фай, и чтобы была одна и та же сеть.
2) Для web api нужно сделать selfhosting
3) через ipconfig узнать свой айпишник и прописать его в настройках конфига web api
4) прописать тот же адрес и порт в андроид-приложении
PS может запилить статью на хабр?
Ответ написан
anyd3v
@anyd3v
Как минимум из кода: вы не правильно запускаете задачу
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB)
    myTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
else
    myTask.execute();


ну и пробуйте прописать явно OnClickListener для btnOk
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы