2016-07-07 6 views
3

私は画像ビューに保存した画像を内部ストレージに保存しました。次に、imageviewからサーバーに画像をアップロードします。しかし、アップロード中にこのVolleyエラーが発生しています。私は自分のコードで何が問題なのか分かりません。私はこのtutorialに指示されたとおりに正確に行いました。それでも私はエラーが発生しています。私は自分のコードに間違いがあるかどうか知りたいです。画像をアップロード中のcom.android.volley.ServerError

public class NewActivity extends AppCompatActivity{ 

    Button save, upload; 
    ImageView image; 
    String encodedImage; 
    private static final String file_path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/UbookSpa"; 
    private static final String IMGUPLOAD = "http://example.com/android/showcustimage"; 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_new); 

     save = (Button)findViewById(R.id.save); 
     upload = (Button)findViewById(R.id.up); 
     image = (ImageView)findViewById(R.id.image); 



     save.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       loadImage(); 

      } 
     }); 

     upload.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       imageupload(); 
      } 
     }); 
    } 





    private void imageupload() { 

     final String imagenew = getStringImage(); 

     StringRequest stringRequest = new StringRequest(Request.Method.POST, IMGUPLOAD, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 


         try { 
          JSONObject jObj = new JSONObject(response); 
          if(jObj.getString("status").equals("1")){ 
           Toast.makeText(NewActivity.this, "Its all good", Toast.LENGTH_SHORT).show(); 
          } 



         } catch (JSONException e) { 
          // JSON error 
          e.printStackTrace(); 
          Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show(); 
         } 
        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Toast.makeText(getApplicationContext(), "VolleyError:" + "\t" + error.toString(), Toast.LENGTH_LONG).show(); 
      } 
     }) { 
      @Override 
      protected Map<String, String> getParams() { 

       // String image = getStringImage(); 

       Map<String, String> params = new HashMap<String, String>(); 
       params.put("userimage", imagenew); 
       return params; 
      } 


     }; 

     RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); 
     requestQueue.add(stringRequest); 
    } 

    public String getStringImage(){ 

     image.buildDrawingCache(); 
     Bitmap bmap = image.getDrawingCache(); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     bmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
     byte[] imageBytes = baos.toByteArray(); 
     encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); 

     return encodedImage; 
    } 



    private void loadImage(){ 

     File directory = new File(file_path); 
     File file = new File(directory, "myimage.jpg"); 
     try { 
      FileInputStream fis = new FileInputStream(file); 
      Bitmap bmap = BitmapFactory.decodeStream(fis); 
      image.setImageBitmap(bmap); 
      fis.close(); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 




} 
+0

このエラーは何ですか? show logcat – Nitesh

+0

そのBasicNetwork.performRequest:私のAPIのための予期しない応答コード500。 –

+0

間違ったURLを使用しているため、これは起こっていると思います。あなたが間違ったURLを提供すると、Volleyは500を返します。 – Nitesh

答えて

0

ご使用のサーバーに問題がある可能性があります。 onErrorResponseの応答をチェックし、これを追加してlogcatを確認してください:

NetworkResponse networkResponse = error.networkResponse; 
    if (networkResponse != null) { 
     Log.e("Volley", "Error. HTTP Status Code:"+networkResponse.statusCode); 
    } 

    if (error instanceof TimeoutError) { 
     Log.e("Volley", "TimeoutError"); 
    }else if(error instanceof NoConnectionError){ 
     Log.e("Volley", "NoConnectionError"); 
    } else if (error instanceof AuthFailureError) { 
     Log.e("Volley", "AuthFailureError"); 
    } else if (error instanceof ServerError) { 
     Log.e("Volley", "ServerError"); 
    } else if (error instanceof NetworkError) { 
     Log.e("Volley", "NetworkError"); 
    } else if (error instanceof ParseError) { 
     Log.e("Volley", "ParseError"); 
    } 
+0

最初のエラー、つまり「HTTPステータスコード:500」と私はインターネット許可を持っています。 –

+0

私のコードは正しいのですか、それとも何らかのエラーがありますか? –

+0

私はurコードで何かエラーを見つけません.. – Nitesh

関連する問題