簡體   English   中英

Android-Volley:嘗試從真實設備連接時出現 TimeOutError

[英]Android-Volley: TimeOutError when trying to connect from a real device

例如,我無法讓我的設備從我的本地服務器獲取數據,即使我已經搜索過類似的問題,並嘗試了一切。

這是我在 Laravel 中的代碼:

網頁.php:

   Route::get('/test', function()
{ return Subject::all(); });

主題.php:

class Subject extends Model
{
    protected $table='subjects';
    protected $primary_key='subjectid'; 

    public $timestamps=false;
}

主要活動:

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.TimeoutError W/System.err: at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:169) W/System.err: at com.android.volley .NetworkDispatcher.processRequest(NetworkDispatcher.java:120) W/System.err: 在 com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:87)

我的設備和筆記本電腦都連接到同一個 WLAN; 我已經為端口 80 和 443(TCP,我想)添加了一個規則 - 我嘗試禁用我的防火牆,唉,它起作用了,我的字符串被提取了! 盡管如此,這是一種冒險和可怕的做法......如果可能,我想知道這個問題的解決方案,我還需要配置什么? 謝謝!

在 request.add(string) 之前在您的截擊請求中添加以下代碼以更改超時持續時間。

request.setRetryPolicy(new DefaultRetryPolicy(
        5000, 
        DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
        DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM