Android プロジェクトでの作業は、データを取得するためにサーバーにアクセスすることと切り離すことができません。典型的な例としては、Android が JSON データを取得するために php にアクセスすることが挙げられます。インターネット上には同様の例がたくさんありますが、投稿されたコードはすべて同じであり、これは詐欺ではありませんか。
このプロジェクトを実行するには、Apache が提供する依存関係パッケージ (jar パッケージ) を使用する必要があります: ①httpclient ②httpcore ③http-mimi ④apache-mime4j
国際的な慣行: まず DEMO にアクセスし、ダウンロード アドレス: Android access php json データを呼び出すため
まず PHP での json データ形式について理解しましょう
$tnnowu = array( 'username' => '灬抹茶灬', 'password' => '666', 'user_id' => 1 ); echo json_encode($tnnowu);
次に、Java コードを記述します
package com.cnwuth.getjson; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; public class MainActivity extends AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } private void startURLCheck(String username,String password) { HttpClient httpClient = new DefaultHttpClient(); StringBuilder stringBuilder = new StringBuilder(); HttpGet httpGet = new HttpGet("xxx.xxx.php"); try { HttpResponse httpResponse = httpClient.execute(httpGet); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader( httpResponse.getEntity().getContent() )); for (String s = bufferedReader.readLine();s!=null;s=bufferedReader.readLine()) { stringBuilder.append(s); } JSONObject jsonObject = new JSONObject(stringBuilder.toString()); String re_username = jsonObject.getString("username"); String re_password = jsonObject.getString("password"); int re_user_id = jsonObject.getInt("user_id"); setTitle("用户ID_" + re_user_id); Log.v("url response" , "true=" + re_username); Log.v("url response" , "true=" + re_password); } catch (Exception e) { Log.v("url response" , "false"); e.printStackTrace(); } } }
最後に、ネットワーク許可Data
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cnwuth.getjson"> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
にアクセスするには、Sina Weibo
@武天昊TnnoWu