我想发送一个基本身份验证请求。
我的标题
Username : EBA Token : 34242353453456563DSFS
我的gsonRequestClass如下:
public GsonRequest(int method, String url, Class<T> responseClass,
Map<String, String> parameters, Map<String, String> headers, Listener<T> listener,
ErrorListener errorListener) {
super(method, url, errorListener);
this.mListener = listener;
this.mResponseClass = responseClass;
this.mParameters = parameters;
this.mHeaders = headers;
}
/**
* Header getter method
*
* @return
* @throws AuthFailureError
*/
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return mHeaders != null ? mHeaders : super.getHeaders();
}
请提供任何建议或示例代码?
答案 0 :(得分:1)
如果您要对
token
api提供商进行身份验证,例如yahoo
,etc
{{ 1}}为所有etc
等提供代码示例,并且您不需要使用凌空。
但是当你在排球上问了问题并且我已经使用凌空开发了这么多Android应用程序时,我开始回答server-side languages like PHP, JAVA
:
我假设..
我们走了......
向服务器页面发出http请求的Java代码:
volley
如果您成功导入库...上面的代码只需要将光标放在两行以下并在mac上使用OPT + RETURN来自动插入库;这将导入并包含上述请求所需的包。
在您的网络服务器上,get_auth.php应该是:
StringRequest stringRequest = new StringRequest(Request.Method.POST, "https://www.yourserver.com/get_auth.php",
new Response.Listener<String>()
{
@Override
public void onResponse(String response)
{
serverResponse = response;
// get response string here; if successful
Toast.makeText(getActivity(),response,Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
serverResponse = error.toString();
// If request could not be placed then error report here
Toast.makeText(getActivity(),error.toString(),Toast.LENGTH_LONG).show();
}
})
{
@Override
protected Map<String,String> getParams()
{
Map<String,String> params = new HashMap<String, String>();
params.put("Username",FirstLast);
params.put("Token",EmailField.getText().toString());
return params;
}};
RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
requestQueue.add(stringRequest);
通过这种方式,从web服务器,你必须回显/ json您的数据回到请求应用程序
Java代码已经
<?php if($_SERVER['REQUEST_METHOD']=='POST') { $UserInput = $_POST['Username']; $UserId = $_POST['Token']; $con = mysqli_connect("localhost", "id4859061_instapromo", "sandhya12345","id4859061_instapromo"); if (!$con) { echo "EXCEPTION_CODE_1"; exit(); } $result = $con->query("SELECT * FROM USERS WHERE `DEVID` = '$UserId' AND `KEYGEN` = '$UserInput'"); if (!$result) { echo "EXCEPTION_CODE_2"; exit(); } if ($result->num_rows == 0) { echo "FAILURE"; exit(); } if ($result->num_rows == 1) { $row = $result->fetch_assoc(); $TempThisDate = $row["VALUEDATE"]; $InstDate = DateTime::createFromFormat('d/m/Y',$TempThisDate); $InstallDate = $InstDate->format('d-m-Y'); $Response = "SUCCESS#".$InstallDate; echo $Response; exit(); } if ($result->num_rows > 1) { echo "REDUNDANT_RECORDS_FOUND"; exit(); } } else { echo "EXCEPTION_CODE_3"; }
从PHP页面发送此服务器响应。这是一个基本的工作和一步一步的例子。我希望你或其他人觉得这很有用。