|
|
|
Android ส่ง parameter ที่เป็น ภาษาไทย ให้ PHP Web Services ไม่ได้ |
|
|
|
|
|
|
|
ผมต้องการส่ง parameter เข้าไปใน METHOD ของ WebServic ที่ใช้ nusoap ปรากฎว่า ส่งภาษาไทยเข้าไป กลายเป็น ตัวอักษร ?????
ก็เลยไม่รู้ว่าต้องไปแก้ไขตรงไหน
Code (PHP)
require_once("lib/nusoap.php");
//Create a new soap server
$server = new soap_server();
//Define our namespace
$namespace = "https://www.thaicreate.com/android/WebServiceServer3.php";
$server->wsdl->schemaTargetNamespace = $namespace;
//Configure our WSDL
$server->configureWSDL("HelloWorld");
// Register our method and argument parameters
$varname = array(
'strName' => "xsd:string",
'strEmail' => "xsd:string"
);
$server->register('HelloWorld',$varname, array('return' => 'xsd:string'));
function HelloWorld($strName,$strEmail)
{
$arr["sName"] = "Sawatdee : ".$strName;
$arr["sEmail"] = "Sawatdee : ".$strEmail;
$strFileName = "2222.txt";
$objFopen = fopen($strFileName, 'w');
$strText1 = $strName."\r\n";
fwrite($objFopen, $strText1);
header('Content-type: application/json;charset=utf-8"');
return json_encode($arr);
}
// Get our posted data if the service is being consumed
// otherwise leave this data blank.
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
// pass our posted data (or nothing) to the soap service
$server->service($POST_DATA);
exit();
Code (Android-Java)
package com.example.testwebservice2;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.json.JSONException;
import org.json.JSONObject;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.annotation.SuppressLint;
import android.app.Activity;
public class MainActivity extends Activity {
private final String NAMESPACE = "https://www.thaicreate.com/android/WebServiceServer3.php";
private final String URL = "http://x.x.x.x/nusoap/WebServiceServer3.php?wsdl"; // WSDL URL
private final String SOAP_ACTION = "http://x.x.x.x/nusoap/WebServiceServer3.php/HelloWorld";
private final String METHOD_NAME = "HelloWorld"; // Method on web service
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Permission StrictMode
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
// btnSend
Button btnSend = (Button) this.findViewById(R.id.btnSend);
btnSend.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// txtName
EditText txtName = (EditText) findViewById(R.id.txtName);
// txtEmail
EditText txtEmail = (EditText) findViewById(R.id.txtEmail);
// txtResultName
TextView txtResultName = (TextView) findViewById(R.id.txtResultName);
// txtResultEmail
TextView txtResultEmail = (TextView) findViewById(R.id.txtResultEmail);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("strName", txtName.getText().toString());
request.addProperty("strEmail",txtEmail.getText().toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
//androidHttpTransport.getServiceConnection();
androidHttpTransport.getServiceConnection().setRequestProperty("Content-Type", "text/xml;charset=utf-8");
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject result = (SoapObject) envelope.bodyIn;
txtResultName.setText(result.getProperty(0).toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}
Tag : Mobile, Android, Mobile, Web Service
|
ประวัติการแก้ไข 2013-09-26 14:04:49
|
|
|
|
|
Date :
2013-09-26 14:03:55 |
By :
arr_012 |
View :
1515 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยผมหน่อยนะครับ ผมหาวิธีมาเป็นอาทิตย์ เเล้ว
|
|
|
|
|
Date :
2013-09-26 15:05:50 |
By :
arr_012 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใน php ใช้ตัวนี้ครับ
Code (PHP)
header("Content-type: application/json; charset=utf-8");
ใน Java ใส่ตัวนี้ครับ
Code (Android-Java)
androidHttpTransport.setRequestProperty("Content-type", "text/xml; charset=utf-8");
|
|
|
|
|
Date :
2013-09-26 15:51:23 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หรือ Ksoap2 มันไม่รองรับ ภาษาไทยครับ ผมจะได้ไปหาวิธีอื่น
|
|
|
|
|
Date :
2013-09-26 20:29:18 |
By :
arr_012 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่ครับ ของผมก็เป็น แสดงภาษาไทย เป็น ?????????? เกิดจากตอนส่งข้อมูลออกจาก app ใครมีวิธีแก้ให้แสดงเป็นภาษาไทยบ้างครับ ขอบคุณครับ
|
|
|
|
|
Date :
2013-10-22 15:36:39 |
By :
treecom |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|