Louai_M
جمعه 05 تیر 1394, 18:33 عصر
سلام دوستان من تو برنامه نویسی اندروید تازه کارم
یه وب سرویس با php و nusoap درست کردم (البته تست شده و آنلاین جواب میده) که کدش زیر گذاشتم
<?php
// Pull in the NuSOAP
require_once('lib/nusoap.php');
// Create the server instance
$server = new soap_server();
// Initialize WSDL support
$server->configureWSDL('MyService', 'urn:MyService');
// Character encoding
$server->soap_defencoding = 'utf-8';
//-------------------------------------------------
//Registrations of our functions
//Register GetData function
$server->register(
'GetDataAbout',
array('id' => 'xsd:int'),
array('return' =>'xsd:string'),
'urn:MyServicewsdl',
'urn:MyServicewsdl#GetDataAbout',
'rpc',
'literal',
'Some comments about function 2'
);
//-----
//-------------------------------------------------
//Our web service functions will be here.
//Body GetData function
function GetDataAbout($id) {
mysql_connect("localhost","***","***");
mysql_select_db("***");
mysql_query('SET NAMES \'utf8\'');
mysql_query('SET NAMES \'utf8\'');
$sql = "SELECT content FROM tblabout WHERE id = '$id'";
$result = mysql_fetch_array(mysql_query($sql));
return $result['content'];
}
//-------------------------------------------------
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
و می خوام تو اندروید فراخوانی کنم با کد های زیر
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope ;
import org.ksoap2.transport.HttpTransportSE;
import java.io.IOException;
/**
* Created by Novin Pendar on 06/26/2015.
*/
public class AboutActivity extends ActionBarActivity {
private static final String SOAP_ACTION = "urn:MyService#GetDataAbout";
private static final String METHOD_NAME = "GetDataAbout";
private static final String NAMESPACE = "urn:MyService";
private static final String URL = "http://service.abdollahtamimi.com/server.php";
TextView v = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_about);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//SoapObject
request.addProperty("id", "1");
//Create envelope
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
//Set output SOAP object
envelope.setOutputSoapObject(request);
//Create HTTP call object
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try
{
androidHttpTransport.call(SOAP_ACTION, envelope);
//Object response = envelope.getResponse();
Object response = envelope.bodyIn;
((TextView)findViewById(R.id.txtWebService)).setTe xt(response.toString());
}
catch (Exception exception)
{
((TextView)findViewById(R.id.txtWebService)).setTe xt(exception.toString());
}
}
}
اما موقع اجرا خطای java.io.ioexception را میده
حال باید چکار کنم مشکل کدم کجاست
کل کار وب سرویسم یه id می گیره و محتوای فیلد contentشو نشون میده همین
یه وب سرویس با php و nusoap درست کردم (البته تست شده و آنلاین جواب میده) که کدش زیر گذاشتم
<?php
// Pull in the NuSOAP
require_once('lib/nusoap.php');
// Create the server instance
$server = new soap_server();
// Initialize WSDL support
$server->configureWSDL('MyService', 'urn:MyService');
// Character encoding
$server->soap_defencoding = 'utf-8';
//-------------------------------------------------
//Registrations of our functions
//Register GetData function
$server->register(
'GetDataAbout',
array('id' => 'xsd:int'),
array('return' =>'xsd:string'),
'urn:MyServicewsdl',
'urn:MyServicewsdl#GetDataAbout',
'rpc',
'literal',
'Some comments about function 2'
);
//-----
//-------------------------------------------------
//Our web service functions will be here.
//Body GetData function
function GetDataAbout($id) {
mysql_connect("localhost","***","***");
mysql_select_db("***");
mysql_query('SET NAMES \'utf8\'');
mysql_query('SET NAMES \'utf8\'');
$sql = "SELECT content FROM tblabout WHERE id = '$id'";
$result = mysql_fetch_array(mysql_query($sql));
return $result['content'];
}
//-------------------------------------------------
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
و می خوام تو اندروید فراخوانی کنم با کد های زیر
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope ;
import org.ksoap2.transport.HttpTransportSE;
import java.io.IOException;
/**
* Created by Novin Pendar on 06/26/2015.
*/
public class AboutActivity extends ActionBarActivity {
private static final String SOAP_ACTION = "urn:MyService#GetDataAbout";
private static final String METHOD_NAME = "GetDataAbout";
private static final String NAMESPACE = "urn:MyService";
private static final String URL = "http://service.abdollahtamimi.com/server.php";
TextView v = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_about);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//SoapObject
request.addProperty("id", "1");
//Create envelope
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
//Set output SOAP object
envelope.setOutputSoapObject(request);
//Create HTTP call object
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try
{
androidHttpTransport.call(SOAP_ACTION, envelope);
//Object response = envelope.getResponse();
Object response = envelope.bodyIn;
((TextView)findViewById(R.id.txtWebService)).setTe xt(response.toString());
}
catch (Exception exception)
{
((TextView)findViewById(R.id.txtWebService)).setTe xt(exception.toString());
}
}
}
اما موقع اجرا خطای java.io.ioexception را میده
حال باید چکار کنم مشکل کدم کجاست
کل کار وب سرویسم یه id می گیره و محتوای فیلد contentشو نشون میده همین