PDA

View Full Version : ارسال اطلاعات به سرور



sara_traveler
یک شنبه 20 دی 1394, 16:07 عصر
سلام
من میخوام اطلاعات از بزنامهمم به سرور بفرستم
منتها میخوام با کدهای asp و روی اسکیول بفرستم

اما هر جا سرچ کردم کدها php و my sql بودن
چطور میتونم این کار انجام بدم

ممنون

smemamian
یک شنبه 20 دی 1394, 17:38 عصر
درود
برای اتصال به وب سرویس در Asp نیاز دارد NameSpace و همچنین نام تابع مورد نیاز وب سرویس خودتون رو بدونید.

تابع زیر رو باید داخل یک AsyncTask استفاده کنی :

public Boolean getData()
{
Bolean _error = false ;

SoapObject Request = new SoapObject(NAMESPACE, function_name);

PropertyInfo pi0 = new PropertyInfo();
pi0.setName("username");
pi0.setValue(utilityFunctions.getUserDataObject(co ntext).getUsername());
pi0.setType(String.class);
Request.addProperty(pi0);


PropertyInfo pi1 = new PropertyInfo();
pi1.setName("pass");
pi1.setValue(utilityFunctions.getUserPass(context) );
pi1.setType(String.class);
Request.addProperty(pi1);





SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.encodingStyle = "utf-8";
envelope.setOutputSoapObject(Request);
try
{
HttpTransportSE transp = new HttpTransportSE (URL_ADDRES);
transp.call(NAMESPACE+function_name, envelope);
SoapPrimitive result = (SoapPrimitive)envelope.getResponse();


JSONObject json = null;
json = new JSONObject(result.toString());

_error = true ;

}
catch(Exception e)
{
// Log.e("error", e.getMessage().toString());
_error = false ;
}


return _error;
}


در اینجا فرض رو بر این گرفتیم که مقدار برگشتی شما از نوع Json هست.

به ترتیب :


نام وب سرویس
نام NameSpace
تابع



public static final String URL_ADDRESS = "http://*******.asmx";
public static final String NAMESPACE = "http://tempuri.org/";
public static final String Login = "Login";

sara_traveler
سه شنبه 22 دی 1394, 10:51 صبح
ممنون از کدتون
منتها من برنامه در زاماین نوشتم و فکر کنم کدهای شما مال اکلیپس هست چون تو برنامه من توابع نمیشناسه
بنظرتون چیکار کنم؟
...................
سوال بعدیم

اگر بخوام اطلاعات مستقیم به اسکیول روی سرور بفرستم چطوره؟


و از نظر سرعت کدوم روش بهتره/؟

با تشکر

saeedr22
سه شنبه 22 دی 1394, 11:25 صبح
با سلام شما ابتدا باید اسمبلی های مربوط به Soap را اضافه کنین.در مورد ارتباط با sql server هم کارتون در صورتی که از وب سرویس استفاده نکنین یکم مشکل تر میشه ولی سرعت ارتباط بالاتر میره.ولی وب سرویس راهی امن تر هستش.
برای ارتباط به sql server به صورت مستقیم میتونین از jtds jdbc استفاده کنین.http://jtds.sourceforge.net/
نمونه ای از کدها
public void ConnectToDatabase(){
try {

// SET CONNECTIONSTRING
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String username = "XXXXXXXXX";
String password = "XXXXXX";
Connection DbConn = DriverManager.getConnection("jdbc:jtds:sqlserver://192.188.4.83:1433/DATABASE;user=" + username + ";password=" + password);

Log.w("Connection","open");
Statement stmt = DbConn.createStatement();
ResultSet reset = stmt.executeQuery(" select * from users ");


EditText num = (EditText) findViewById(R.id.displaymessage);
num.setText(reset.getString(1));

DbConn.close();

} catch (Exception e)
{
Log.w("Error connection","" + e.getMessage());
}
}

smemamian
سه شنبه 22 دی 1394, 23:08 عصر
درود

شما مستقیم به سرور اتصال برقرار کنید بعد از برنامه خروجی بگیرید و برای من بفرستید. کمتر از 10 دقیقه کل سرور رو براتون می خونم.
اتصال مستقیم به سرور کار درستی نیست و از لحاظ امنیتی بدون شک خطر 100% رو داره.

saeedr22
چهارشنبه 23 دی 1394, 01:26 صبح
با سلام دوست عزیز درسته و من هم خدمت دوست عزیزمون عرض کردم که امنیت این روش پایین تره ولی برای مسائل کانکش استرینگ میشه کارهایی کرد که جناب عالی در عرض 10 مین نتونین به سرورم دسترسی یپیدا کنین.در صورت رضایت مایل به تست این کار هم هستم.

sara_traveler
چهارشنبه 23 دی 1394, 15:44 عصر
ایا باید فایلی از jtds jdbc به برنامه اضافه بشه؟ اگر باید بشه در کجا باید اضافه بشه
چون در برنامه من

Statement stmt = DbConn.createStatement();
ResultSet reset = stmt.executeQuery(" select * from users ");



DbConn.close();

این خطوط خطا میده و توابعش نمیشناسه

saeedr22
چهارشنبه 23 دی 1394, 16:09 عصر
از وب سرویس استفاده کنید.وبرای استفاده از وب سرویس در xaramin از توضیحات لینک زیر استفاده کنید.
کدی که من فرستادم مربوط به java هستش و برای شما جواب نمیده.
http://developer.xamarin.com/guides/cross-platform/Application_Fundamentals/Web_Services/