【问题标题】:How to call Api Url in android?如何在android中调用Api Url?
【发布时间】:2015-12-28 08:07:48
【问题描述】:

我是安卓开发的新手。我想在 android Studio 中调用 Api Url。我无法在android中调用api url请帮助

【问题讨论】:

  • 请贴出您目前尝试过的代码。
  • 没有人能帮助你,因为你的问题描述太短了。正确描述您的问题和尝试过的代码。
  • 欢迎来到 Stack Overflow。这不是在这里提问的好方法。到目前为止,您是否尝试过任何方法来解决您的问题?首先展示你的努力,这样人们就可以展示他们的努力。请先阅读FAQHow to Askhelp center

标签: android android-webservice


【解决方案1】:

只是在黑暗中刺伤,因为我不知道您要做什么。这是我使用的名为 SendArrival.java 的 AsyncTask 命令:

SendArrival.java

package company.com.mirrorandroid.commands;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.util.Log;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import company.com.mirrorandroid.model.Model;


public class SendArrival extends AsyncTask<Void, Integer, Integer> {

    private Context context;

    public SendArrival(Context context) {
        this.context = context;
    }

    protected void onPreExecute() {
        //
    }

    @Override
    protected void onPostExecute(Integer success) {
        Log.d("Mirror", "finished " + success.toString());
    }

    @Override
    protected Integer doInBackground(Void... Void) {
        try {
            URL url = new URL("http://foo.com/arrive");
            // Create a new HttpClient and Post Header
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("foo.com/arrive");

            try {
                SharedPreferences sp = context.getSharedPreferences(Model.PREFS_NAME, 0);
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("deviceId", "12345"));
                nameValuePairs.add(new BasicNameValuePair("guestName", sp.getString("guestName","Android Man")));
                nameValuePairs.add(new BasicNameValuePair("message", sp.getString("message","Better than iOS")));
                nameValuePairs.add(new BasicNameValuePair("memberType", sp.getString("memberType","Green")));
                nameValuePairs.add(new BasicNameValuePair("handle", sp.getString("handle","no-handle from Android")));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);
                Log.d("mirror", response.toString());
                if(response.getStatusLine().getStatusCode() != 200){
                    Log.d("mirror", "error occurred " + response.getStatusLine().getReasonPhrase());
                    return 0;
                }

            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                Log.e("mirror", "Send Arrival client prototcol error " + e.toString());
                return 0;
            } catch (IOException e) {
                // TODO Auto-generated catch block
                Log.e("mirror", "Send Arrival  io error " + e.toString());
                return 0;
            }
        } catch (Exception e) {
            Log.d("sp", e.getMessage());
            return 0;
        }

        return 1;
    }
}

然后你可以像这样从你的活动中调用它:

new SendArrival(context).execute();

像其他评论者一样,提供更多详细信息,我们可以为您提供帮助。

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 2021-08-30
    • 2017-05-19
    • 2018-09-01
    • 1970-01-01
    相关资源
    最近更新 更多