2016-07-27 7 views
0

ネットワークリクエストにhttpokライブラリを使用しています。コードは、ID、名前、年齢などを送信すると問題なく動作します しかし、 "encodedPhotoString"を送信すると、 イメージの長い文字列がサーバーにアップロードされ、約8000文字のコードがjava.netを投げています.SocketTimeoutException:タイムアウト 例外。私は接続のタ​​イムアウトを変更しようとしましたが、それは私のために働いていないタイムアウトを読み取ります。私はnamecheap.comホスティングサーバーを使用しています。 この問題を手伝ってください。ありがとうございました。長いエンコードされた文字列をサーバーにアンドロイドでアップロード中のjava.net.SocketTimeoutException

public class AddUserAsync extends AsyncTask<Void,Void,Void> { 
    OkHttpClient client=null; 
    RequestBody formBody=null; 
    Request request=null; 
    JSONObject json = null; 
    String fromServer = ""; 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pDialog = new ProgressDialog(UploadImage.this); 
     pDialog.setMessage("Creating Account..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(false); 
     pDialog.show(); 
    } 
    @Override 
    protected Void doInBackground(Void... voids) { 
     GetUserDetails(); 
     GenerateGCMID(); 
     email= email.trim().toLowerCase(); 
     latitude = GPSTracker.getLatitude(); 
     longitude = GPSTracker.getLongitude(); 
     client = new OkHttpClient().newBuilder().readTimeout(30,TimeUnit.SECONDS).connectTimeout(30,TimeUnit.SECONDS).build(); 
     formBody = new FormBody.Builder() 
       .add("ID",ID) 
       .add("Name",name) 
       .add("email",email) 
       .add("password",password) 
       .add("age",age) 
       .add("number",number) 
       .add("bloodgroup",bloodgroup) 
       .add("lat",latitude+"") 
       .add("longi",longitude+"") 
       .add("image",encodedPhotoString) 
       .build(); 
     request = new Request.Builder() 
       .url("http://faceblood.website/blood_app/Adduser.php") 
       .post(formBody) 
       .build(); 
     try { 
      Response response = client.newCall(request).execute(); 
      String res = response.body().string(); 
      json = new JSONObject(res); 
      fromServer = json.getString("added"); 
      Log.e("stringtest",json.getString("added")); 
     } catch (IOException e) { 
      Log.e("IOException",e.toString()); 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      Log.e("JSONException",e.toString()); 
      e.printStackTrace(); 
     }  
     return null; 
    } 
    @Override 
    protected void onPostExecute(Void aVoid) { 
     super.onPostExecute(aVoid); 
     pDialog.dismiss(); 

     Log.e("fromServer",fromServer); 
     if(fromServer.equals("addeduser")){ 
      Toast.makeText(getBaseContext(), "Created Successfully", Toast.LENGTH_LONG).show(); 
      onSignupSuccess(); 
     }else { 
      Toast.makeText(getBaseContext(), "Network problem. Try again", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

<?php 
 
require "conn.php"; 
 

 
$id = $_POST["ID"]; 
 

 
$name = $_POST["Name"]; 
 

 
$email = $_POST["email"]; 
 

 
$password = $_POST["password"]; 
 

 
$age = $_POST["age"]; 
 

 
$number = $_POST["number"]; 
 

 
$blood = $_POST["bloodgroup"]; 
 

 
$latitude = $_POST["lat"]; 
 

 
$longitude = $_POST["longi"]; 
 

 
$image = $_POST["image"]; 
 

 
$splitEmail = explode('@', $email); 
 
$imageValue = base64_decode($image); 
 
$image = $splitEmail[0].".jpg"; 
 
$path = "images/".$image; 
 
file_put_contents($path, $imageValue); 
 

 

 
$sql = "INSERT INTO UserDetails (ID,Name,email,password,age,number,bloodgroup,lat,longi,image) 
 
VALUES ('$id','$name','$email','$password','$age','$number','$blood','$latitude','$longitude','$image')"; 
 
\t 
 

 

 
if ($conn->query($sql) === TRUE) { 
 
    $response["added"] = "addeduser"; 
 
} else { 
 

 
} 
 

 
echo json_encode($response); 
 
$conn->close(); 
 
?>

+0

8000文字は長くない設定を忘れてしまいました。この問題は、ネットワーク上の何かが原因で発生したもので、実際にサーバーに接続していないか、サーバーが応答していないためです。私はあなたのサーバー側をデバッグしたいと思います。 –

+0

私はデータがうまく格納されるたびにフォトストリングをアップロードしなければ、サーバーの問題ではないと思います。さらに、サーバー側の私のコードもテストされています。より明確に私はそのコードをアップロードしています。 –

+0

@ GabeSechanも同様にサーバー側のコードを見ることができます。更新しました。 –

答えて

0

あなたはwriteTimeout

client = new OkHttpClient().newBuilder().readTimeout(30,TimeUnit.SECONDS).connectTimeout(30,TimeUnit.SECONDS).writeTimeout(1, TimeUnit.MINUTES).build() 
関連する問題