举个例子,我无法让我的设备从我的本地服务器获取数据,即使我已经搜索了类似的问题,并尝试了所有的东西。
这是我在Laravel的代码:
web.php:
Route::get('/test', function()
{ return Subject::all(); });Subject.php:
class Subject extends Model
{
protected $table='subjects';
protected $primary_key='subjectid';
public $timestamps=false;
}MainActivity:
public class MainActivity extends AppCompatActivity implements Button.OnClickListener {
Button btn;
TextView textview;
String url = "http://192.168.1.*:80/test";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview = (TextView)findViewById(R.id.txt);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}
@Override
public void onClick(View view)
{
switch(view.getId())
{
case R.id.btn:
final RequestQueue request = Volley.newRequestQueue(MainActivity.this);
StringRequest string = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response)
{
textview.setText(response);
Log.d("response", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error)
{
Toast.makeText(getApplicationContext(), "An error has ocurred!", Toast.LENGTH_SHORT);
error.printStackTrace();
request.stop();
}
}
);
request.add(string);
break;
}
}}
这是一个错误:
W/System.err: com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:169) W/System.err: at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:120) W/System.err: at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:87)
我的设备和笔记本电脑都连接到同一个WLAN上;我为端口80和443添加了一条规则(我想是TCP)--我试着禁用防火墙,唉,它起作用了,我的字符串被取下来了!尽管如此,这是一种冒险和可怕的做法.如果可能的话,我想知道这个问题的解决方案,我还需要配置什么?谢谢!
发布于 2018-02-25 07:08:25
在request.add(string)之前将下面的代码添加到您的volley请求中,以更改超时时间。
request.setRetryPolicy(new DefaultRetryPolicy(
5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));https://stackoverflow.com/questions/48971023
复制相似问题