Android应用程序开发人员应该如何将USERPWD发送到我的PHP API?
这是我第一次做API,我已经设置了一个令牌,客户端必须发送给我才能访问API内容 因此,我检索此令牌的方法是:Android应用程序开发人员应该如何将USERPWD发送到我的PHP API?,php,android,Php,Android,这是我第一次做API,我已经设置了一个令牌,客户端必须发送给我才能访问API内容 因此,我检索此令牌的方法是: $_SERVER['PHP_AUTH_USER'] 但是应用程序开发人员一直说他找不到发送此信息的方法,因此我的API无法识别它 你知道他该怎么送我吗?或者可能$\u服务器['PHP\u AUTH\u USER']不是检索令牌的正确方法?您需要执行以下操作 将请求从移动应用发送到端点资源[php] php为您的应用程序生成访问令牌,并将响应返回到手机 移动应用在每个请求中使用此令牌,
$_SERVER['PHP_AUTH_USER']
但是应用程序开发人员一直说他找不到发送此信息的方法,因此我的API无法识别它
你知道他该怎么送我吗?或者可能
$\u服务器['PHP\u AUTH\u USER']
不是检索令牌的正确方法?您需要执行以下操作
我们可以传递令牌以作为
$headers['Authorization']
检索。要从Android设置此变量,我们需要执行以下操作
String credentials = username + ":" + password;
String basicAuth = "Basic " + new String(new Base64().encode(credentials.getBytes()));
HttpURLConnection myURLConnection = (HttpURLConnection)myURL.openConnection();
myURLConnection.setRequestProperty ("Authorization", basicAuth);
要检查客户端是否已发送令牌,您可以按如下操作:
if(isset($headers['Authorization'])){
$api_key=$headers['Authorization'];
}
这被称为基本授权,它不像以前那样安全。如果需要可靠的安全性,请尝试将当前代码更改为OAuth2.0,对于正常情况,基本身份验证应该可以工作。此示例向post请求添加了几个参数:
String url = "https://www.example.com/api.php";
HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(url);
// add header
post.setHeader("USERPWD", USERPWD_VALUE);
List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("locale", ""));
urlParameters.add(new BasicNameValuePair("caller", ""));
post.setEntity(new UrlEncodedFormEntity(urlParameters));
HttpResponse response = client.execute(post);
System.out.println("Response Code : "
+ response.getStatusLine().getStatusCode());
stringurl=”https://www.example.com/api.php";
HttpClient client=HttpClientBuilder.create().build();
HttpPost=新的HttpPost(url);
//添加标题
post.setHeader(“USERPWD”,USERPWD_值);
List urlParameters=new ArrayList();
添加(新的BasicNameValuePair(“locale”,即“”);
添加(新的BasicNameValuePair(“调用者”,“调用者”);
setEntity(新的UrlEncodedFormEntity(urlParameters));
HttpResponse response=client.execute(post);
System.out.println(“响应代码:
+response.getStatusLine().getStatusCode());
我想这会解决你的问题。这不会是一个
$\u服务器
变量,但它将取决于你尚未向我们展示的东西。我希望他们在标题中发送令牌,然后在我这边通过它的声音检索它getallheaders
或apache\u response\u headers
。或者你可以用邮局