2
我正在向服務器發佈印地文/英文/馬拉地文數據。如果數據是印地文/馬拉地語,服務器端能夠檢測到英文數據,但無法檢測到該數據。我正在使用下面提到的代碼 -區分發送給WebServer的數據的語言?
public static String sendDataToServer(String urlString, String parameter) {
try {
if (TextUtils.isEmpty(urlString) || TextUtils.isEmpty(parameter))
return null;
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.setFixedLengthStreamingMode(parameter.length());
urlConnection.setReadTimeout(10000);
urlConnection.setConnectTimeout(45000);
urlConnection.connect();
DataOutputStream dataOutputStream = new DataOutputStream(urlConnection.getOutputStream());
dataOutputStream.writeBytes(parameter);
dataOutputStream.flush();
dataOutputStream.close();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String input;
StringBuilder stringBuilder = new StringBuilder();
while ((input = bufferedReader.readLine()) != null) {
stringBuilder.append(input);
}
bufferedReader.close();
return stringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
我也試過設置編碼,但它仍然無法正常工作。下面提到的是我編碼數據的代碼 -
public static String submitDataToServer(String urlString, String parameter1, String parameter2) {
try {
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter(Constants.USER_NAME, parameter1)
.appendQueryParameter(Constants.USER_REVIEW, parameter2);
String query = builder.build().getEncodedQuery();
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setDoInput(true);
conn.setRequestProperty("Content-Length", "" + query.getBytes().length);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.flush();
writer.close();
os.close();
conn.connect();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String input;
StringBuilder stringBuilder = new StringBuilder();
while ((input = bufferedReader.readLine()) != null) {
stringBuilder.append(input);
}
bufferedReader.close();
return stringBuilder.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
請讓我知道如果我在這段代碼中做錯了什麼。也讓我知道哪種方法適合我的要求。
在此先感謝。
如果服務器是無法檢測到它,你不應該在服務器端來解決這個問題呢? – frz3993
你住在哪裏? –
你可以在這裏粘貼你的api代碼嗎? –