2016-05-23 3 views
0

私はvolleyを使用してWebサービスリクエストを送信していますが、ボレー応答はSERVER ERRORです(このサイトではJavaスクリプトが有効です)。 POSTメソッドとGETメソッドを試しました。 は、この問題に関するいくつかの検索後、私はこれら二つの質問.. Volley Server error (Requires javascript?) Android Development but there is no answer to solve this issue in 2 monthsVolleyサーバーエラーこのサイトではJavaスクリプトが有効になっています

Disable Javascript on volley StringRequest but there is no answer to solve this issue in 6 months

見つかりませんでした多くの質問と解決策を見つけました。誰もがこの問題で正確な問題と解決策を教えることができます。 は、ここに私のコード

public void postRequest(final JSONObject jsonParams,final Handler handler){ 
    StringRequest stringRequest = new StringRequest(Request.Method.POST, AppConstants.ADMIN_URL, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        Message message = handler.obtainMessage(); 
        message.obj = response; 
        handler.sendMessage(message); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Message message = handler.obtainMessage(); 
        message.obj = error.toString(); 
        Log.d("error",error.toString()); 
        handler.sendMessage(message); 
       } 
      }){ 
     @Override 
     protected Map<String,String> getParams(){ 
      Map<String,String> params = new HashMap<String, String>(); 

      Iterator<String> iter = jsonParams.keys(); 
      while (iter.hasNext()) { 
       try { 
        String key = iter.next(); 
        String value = jsonParams.get(key)+""; 
        params.put(key,value); 

       } catch (JSONException e) { 
        // Something went wrong! 
        Message message = handler.obtainMessage(); 
        message.obj = e.getMessage(); 
        handler.sendMessage(message); 
       } 
      } 
      return params; 
     } 

     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      Map<String,String> headers = new HashMap<String, String>(); 
      return headers; 
     } 
    }; 

    MyVolley.getInstance(context).getRequestQueue().add(stringRequest); 
} 

とWebサービスのコードである私は最近、このエラーに出くわした

<?php if(true) { echo 'request arrived'; } ?> 
+0

あなたにリクエストを送信しているサイトは何ですか? – zgc7009

+0

私は無料のホスティングサイトを使用しています。Base.pk – user3001551

+0

JavaScriptを必要とするWebページにヒットすると、このエラーが発生すると思いますが、このようなリクエストを作成してはいけません。不思議。ユーザーにUIなどを提供するように設計されたURLをヒットしようとしていますか? – zgc7009

答えて

0

です!あなたのコードはまあまあですが、問題はあなたのウェブホストにあります。 (それはbyethostですか?) Androidボレーのリクエストを許可しないボット検出器が動作しています。残念ながら、これを無効/無効にすることはできません。 ウェブホスティングサービスの変更をお試しください。 欲しいものはこちら

0

答えはthisで提案されています。

Volleyでは、getHeaders()メソッドをオーバーライドして、HTTPリクエストでCookieを送信できます。

コード:

@Override 
public Map<String, String> getHeaders() throws AuthFailureError { 
    Map<String, String> map = new HashMap<>(); 
    map.put("Cookie", "__test=YOUR COOKIE HERE; expires=Friday, January 1, 2038 at 5:25:55 AM; path=/"); 
    return map; 
} 
関連する問題