我已经编写了一个Android代码并与webserver(phpMyAdmin)连接。现在出现问题我只能从一个网络访问服务器,即我自己的互联网,每当我尝试从其他网络访问它时,它就会给我volley.timeout错误。
有些人建议我公开您的服务器地址,有些人建议我购买服务器。我不太了解这些事情,因为我是Android的新手,我想从每个网络访问我的数据库。
这是我的代码:
public class MainActivity extends AppCompatActivity {
Button Show;
TextView Result;
RequestQueue requestQueue;
String URL="http://192.168.0.103/fetchdata.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Show=(Button) findViewById(R.id.Show);
Result=(TextView) findViewById(R.id.textView);
requestQueue= Volley.newRequestQueue(getApplicationContext());
Show.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
JsonObjectRequest jsonobjectrequest=new JsonObjectRequest(Request.Method.POST,URL,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
try{
JSONArray signin=response.getJSONArray("signin");
for (int i=0;i<signin.length();i++)
{
JSONObject signin1=signin.getJSONObject(i);
String Username=signin1.getString("username");
String Password=signin1.getString("password");
String Email=signin1.getString("email");
Result.append(Username+" "+Email+" "+Password+ "\n");
}
Result.append("===\n");
}catch(JSONException e){
e.printStackTrace();
}
}
}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_SHORT).show();
}
});
requestQueue.add(jsonobjectrequest);
}
});
}
}
答案 0 :(得分:0)
要实现此目的,首先必须配置phpMyAdmin。
您必须编辑此文件
/etc/httpd/conf.d/phpMyAdmin.conf
在linux控制台中输入以下命令
$ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf.
将额外的行添加到目录设置:
<Directory /usr/share/phpMyAdmin/> <----- or similar
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.1.0/15 <--- Add this
</Directory>
如果您想允许访问所有人,那么您可以将其更改为:
<Directory /usr/share/phpMyAdmin/>
order allow,deny
allow from all
</Directory>
保存,然后重新启动服务器
$ sudo service httpd restart