首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android-Volley:当尝试从真正的设备连接时,TimeOutError

Android-Volley:当尝试从真正的设备连接时,TimeOutError
EN

Stack Overflow用户
提问于 2018-02-25 06:51:57
回答 1查看 5.6K关注 0票数 0

举个例子,我无法让我的设备从我的本地服务器获取数据,即使我已经搜索了类似的问题,并尝试了所有的东西。

这是我在Laravel的代码:

web.php:

代码语言:javascript
复制
   Route::get('/test', function()
{ return Subject::all(); });

Subject.php:

代码语言:javascript
复制
class Subject extends Model
{
    protected $table='subjects';
    protected $primary_key='subjectid'; 

    public $timestamps=false;
}

MainActivity:

代码语言:javascript
复制
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)--我试着禁用防火墙,唉,它起作用了,我的字符串被取下来了!尽管如此,这是一种冒险和可怕的做法.如果可能的话,我想知道这个问题的解决方案,我还需要配置什么?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-25 07:08:25

在request.add(string)之前将下面的代码添加到您的volley请求中,以更改超时时间。

代码语言:javascript
复制
request.setRetryPolicy(new DefaultRetryPolicy(
        5000, 
        DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
        DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48971023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档