2016-05-29 8 views
-1

(アンドロイド)Javaで(私はASP.NETで行われていること)は、Web APIを呼び出すためにしようとしている:すべての私はこれが私のコードである

import android.os.AsyncTask; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 

import com.squareup.okhttp.OkHttpClient; 
import com.squareup.okhttp.Request; 
import com.squareup.okhttp.Response; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.IOException; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.Locale; 

public class MainActivity extends AppCompatActivity { 
String url="10.152.2.45"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
private class ListarEventos extends AsyncTask<String, Void, ArrayList<Evento>> { 
    private OkHttpClient client = new OkHttpClient(); 
    @Override 
    protected void onPostExecute(ArrayList<Evento> direcciones) { 
     super.onPostExecute(direcciones); 
    } 
    @Override 
    protected ArrayList<Evento> doInBackground(String... params) { 
    Request request = new Request.Builder() 
      .url(url) 
      .build(); 
    try { 
     Response response = client.newCall(request).execute(); 
     return parseResult(response.body().string());  

    } catch (IOException | JSONException e) { 
     Log.d("Error",e.getMessage()); 
     return new ArrayList<Evento>(); 
    } 
} 
ArrayList<Evento> parseResult(String JSONstr) throws JSONException { 
    ArrayList<Evento> eventos = new ArrayList<>(); 
    JSONObject json = new JSONObject(JSONstr);     
    JSONArray jsonEventos = json.getJSONArray("results"); 
    Date result=new Date(); 
    for (int i=0; i<jsonEventos.length(); i++) { 
     JSONObject jsonResultado = jsonEventos.getJSONObject(i); 
     int jsonId = jsonResultado.getInt("Id"); 
     String jsonMat = jsonResultado.getString("Materia"); 
     String jsonTipo = jsonResultado.getString("Tipo"); 
     SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH"); 
     String Fecha=jsonResultado.getString("Fecha"); 
     try { 
      result = df.parse(Fecha); 
     }catch (Exception e) { 

     } 
     String jsonDesc = jsonResultado.getString("Descripcion"); 
     Evento d = new Evento(); 
     d.Id=jsonId; 
     d.Materia=jsonMat; 
     d.Tipo=jsonTipo; 
     d.Fecha=result; 
     d.Descripcion=jsonDesc; 
     eventos.add(d); 
    } 
    return eventos; 
} 

} 
} 

まず、私がコールする方法がわかりません私はIPアドレスを書く場合、私はAPIを(同じコンピュータ内で)デバッグ中にアンドロイドをデバッグするので、サービスは、動作しません。 コードは、APIを呼び出し、localhost/api/Eventos/Getに行き、すべてのイベントでjsonを取得します。

PS:私はlocalhostを書く場合、それはあなたが、それは正確なURLを知っている必要があり、あなたのマシン上で動作するWeb APIを呼び出すには

答えて

0

動作しないので、私はコンピュータのIPを書いた - ちょうど、ローカルホストまたはあなたのIPは十分ではありませんlocalhost:8080/myapi

また、APIが期待する要求の種類を知っている必要があります - GET、POST、その他の要求が必要ですか?どのパラメータを渡す必要がありますか?

ローカルでWebサービスを開始したので、このサービスに関するこの情報を調べることができます。また、言語Webサービスが開発されている発信者(この場合はAndroidアプリ)には違いはありません。これはASP.NET以外の言語でも記述でき、同じように動作します。

関連する問題