Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向PHP api发送HTTP请求时,是否可以检索android应用程序信息,如id、名称?_Php_Android_Rest_Httpurlconnection - Fatal编程技术网

向PHP api发送HTTP请求时,是否可以检索android应用程序信息,如id、名称?

向PHP api发送HTTP请求时,是否可以检索android应用程序信息,如id、名称?,php,android,rest,httpurlconnection,Php,Android,Rest,Httpurlconnection,我正在创建一个网站,我必须在其中验证应用程序的所有权。我提供的安卓代码,用户将粘贴到他的应用程序。 这段代码只是将HTTP请求发送到我的API服务器。我已经在api.php中打印了$\请求。在响应中$\u请求仅返回我在应用程序代码中传递的参数 以下是android代码: package com.example.vasim.apisample; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity

我正在创建一个网站,我必须在其中验证应用程序的所有权。我提供的安卓代码,用户将粘贴到他的应用程序。 这段代码只是将HTTP请求发送到我的API服务器。我已经在api.php中打印了$\请求。在响应中$\u请求仅返回我在应用程序代码中传递的参数

以下是android代码:

package com.example.vasim.apisample;

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

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

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class MainActivity extends AppCompatActivity {

private static String urlString;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String adSetupID = "25";
    String adSetupBannerSize = "125x125";

    // Create data variable for sent values to server
    String data = null;
    try {
        data = URLEncoder.encode("block_id", "UTF-8")+ "=" + URLEncoder.encode(adSetupID, "UTF-8");
        data += "&" + URLEncoder.encode("banner_size", "UTF-8") + "=" + URLEncoder.encode(adSetupBannerSize, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    // Send Request
    urlString = "http://howtocodeigniter.com/api.php?"+data;
    new ProcessJSON().execute(urlString);

}

private class ProcessJSON extends AsyncTask<String, Void, String> {
    protected String doInBackground(String... strings){
        String stream = null;
        String urlString = strings[0];

        HTTPDataHandler hh = new HTTPDataHandler();
        stream = hh.GetHTTPData(urlString);

        // Return the data from specified url
        return stream;
    }

    protected void onPostExecute(String stream){

        //..........Process JSON DATA................
        if(stream !=null){
            // Get the full HTTP Data as JSONObject
            //JSONObject reader= new JSONObject(stream);

            Log.e("server_response:", stream);

        } // if statement end
    } // onPostExecute() end
} // ProcessJSON class end


} // MainActivity class end

我想要用户代理数据(设备名、应用程序id、用户ip等),就像我们在PHP中获取的一样

如果不是在Android端手动实现,您将无法获取任何应用程序信息

HTTP客户端通常只发送您要求它发送的内容。。。请随意使用自定义或众所周知的标题或查询字符串。。。或是后躯…@Selvin-hmm。。还有其他选项可以让它工作吗?是的,只有一个,用webbrowser打开它,而不是用http客户端打开它,它将向您发送有关设备的更多信息。。。你不明白什么?若你们并没有从客户端发送这些信息,你们将无法在服务器端得到它们!是的,你是对的。。我已经打印了$_SERVER['HTTP\U USER\U AGENT',我刚刚收到Dalvik/2.1.0(Linux;U;Android 7.0;Android SDK为x86 Build/NYC构建)
E/server_response:: Array(    [block_id] => 25    [banner_size] => 125x125)