PDA

View Full Version : ارسال اطلاعات یا داده ها از برنامه appliction به یک url



novinsite
چهارشنبه 02 آذر 1390, 13:25 عصر
با سلام
دوستان چطوری میشه از یک برنامه applicatin به یک url اطلاعات یا داده ها را post کرد؟
آیا نمونه همچین برنامه ای دارید؟

REZAE2011
چهارشنبه 02 آذر 1390, 17:44 عصر
سلام
دوست عزیز اگه منظورتون اینکه چطوری می شه در برنامه تحت ویندوز بتوان اطلاعاتی را به یک وب سایت فرستاد باشه :

می تونید از سوکت پروگرامینگ و تابع post از پروتکل http با کمک سوکت های tcp اطلاعات را به وب سایت ارسال کنید.

اگه منظورتون رو درست فهمیده باشم .

novinsite
چهارشنبه 02 آذر 1390, 18:53 عصر
سلام
دوست عزیز اگه منظورتون اینکه چطوری می شه در برنامه تحت ویندوز بتوان اطلاعاتی را به یک وب سایت فرستاد باشه :

می تونید از سوکت پروگرامینگ و تابع post از پروتکل http با کمک سوکت های tcp اطلاعات را به وب سایت ارسال کنید.

اگه منظورتون رو درست فهمیده باشم .

آیا نمونه برنامه برای این کار دارید؟

REZAE2011
پنج شنبه 03 آذر 1390, 09:14 صبح
با سلامی دوباره
دوست من شما اول باید مشخص کنید که چه اطلاعاتی را می خواهید ارسال کنید و همچنین مشخص کنید که چه مقدار از پروتکل http و سوکت پروگرامینگ اشنایی دارید . به هر حال در اینجا اطلاعات و مراجعی رو به شما می دهم که امید وارم مفید باشن و اگر هم نیاز به اطلاعات بیشتر داشتید انشا الله بتونم کمکتون کنم.
خوب این پروژه 2 جنبه دارد:
الف)شناخت پروتکل http : از قبیل شناخت ساختار پروتکل و قسمت header و body پروتکل http و متد های ان از قبیل متدهای GET وHEAD برای ارسال و دریافت .

ب)اشنایی با مباحث برنامه نویسی شبکه با C#‎ : یعنی چگونه می توان با کلاس هایی C#‎ برای ما فراهم کرده بتوان تحت شبکه اطلاعات رو ارسال کرد

در مورد قسمت الف) مربوط به پروتکل HTTP من کتاب اقای احسان ملکیان به نام "اصول برنامه نویسی شبکه "را معرفی می کنم در این کتاب به زیبایی پروتکل HTTP را شرح داده و همچنین در فصول دیگر برنامه نویسی سوکت را شرح داده (البته برای زبان جاوا)

و برای قسمت ب) namespaseهای System.net و System.net.socket در سی شارپ معرفی شده اندبرای سوکت پروگرامینگ حتی برای پروتکل HTTP دو کلاس مجزا به نام های HttpWebRequest وHttpWebResponse را تعریف کرده اگه خواستید در پست بیشتر به جزییات بپردازیم.
و در مورد

آیا نمونه برنامه برای این کار دارید؟
من این لینک از MSDN رو معرفی می کنم :http://msdn.microsoft.com/en-us/library/system.net.sockets.socket(v=VS.80).aspx
. در مثالی که در این صفحه گفته شده 2 متد تعریف کرده مثالش واضح است: متد ConnectSocket که 2 تا پارامتر دارد نام وب سایت و شماره پورت (برای http پورت 80) را گرفته و یک اتصال از نوع tcp را برقرار می کند خروجی این متد که از نوع socket هست . و متد دوم یعنی متد SocketSendReceive با کمک متد بالا به سرور
وصل می شود و با متد های send و recive اقدام به دریافت صفحه اول وب سایت می کند.
مثلا اگر متد( SocketSendReceive("www.sapka.ir/", 80 را به این شکل فراخوانی کنیم صفحه اول سایت sapka را به صورت کدهای html تحویل می گیریم.
همان طور که در مثال واضح است با متد GET از پروتکل HTTP اطلاعات در خواستی به سمت سرور ار سال شدند.

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

REZAE2011
سه شنبه 08 آذر 1390, 15:50 عصر
بهتره سری به این لینک ها هم بزنی:

http://barnamenevis.org/showthread.php?95001-1001-%D9%86%DA%A9%D8%AA%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE&p=474150#post474150

http://barnamenevis.org/showthread.php?315743-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-%D9%81%DB%8C%D9%84%D8%AF-%D8%A7%DB%8C%D9%86%D8%AA%D8%B1%D9%86%D8%AA%DB%8C

novinsite
جمعه 25 آذر 1390, 12:29 عصر
با سلامی دوباره
دوست من شما اول باید مشخص کنید که چه اطلاعاتی را می خواهید ارسال کنید و همچنین مشخص کنید که چه مقدار از پروتکل http و سوکت پروگرامینگ اشنایی دارید . به هر حال در اینجا اطلاعات و مراجعی رو به شما می دهم که امید وارم مفید باشن و اگر هم نیاز به اطلاعات بیشتر داشتید انشا الله بتونم کمکتون کنم.
خوب این پروژه 2 جنبه دارد:
الف)شناخت پروتکل http : از قبیل شناخت ساختار پروتکل و قسمت header و body پروتکل http و متد های ان از قبیل متدهای GET وHEAD برای ارسال و دریافت .

ب)اشنایی با مباحث برنامه نویسی شبکه با C#‎ : یعنی چگونه می توان با کلاس هایی C#‎ برای ما فراهم کرده بتوان تحت شبکه اطلاعات رو ارسال کرد

در مورد قسمت الف) مربوط به پروتکل HTTP من کتاب اقای احسان ملکیان به نام "اصول برنامه نویسی شبکه "را معرفی می کنم در این کتاب به زیبایی پروتکل HTTP را شرح داده و همچنین در فصول دیگر برنامه نویسی سوکت را شرح داده (البته برای زبان جاوا)

و برای قسمت ب) namespaseهای System.net و System.net.socket در سی شارپ معرفی شده اندبرای سوکت پروگرامینگ حتی برای پروتکل HTTP دو کلاس مجزا به نام های HttpWebRequest وHttpWebResponse را تعریف کرده اگه خواستید در پست بیشتر به جزییات بپردازیم.
و در مورد

من این لینک از MSDN رو معرفی می کنم :http://msdn.microsoft.com/en-us/library/system.net.sockets.socket(v=VS.80).aspx
. در مثالی که در این صفحه گفته شده 2 متد تعریف کرده مثالش واضح است: متد ConnectSocket که 2 تا پارامتر دارد نام وب سایت و شماره پورت (برای http پورت 80) را گرفته و یک اتصال از نوع tcp را برقرار می کند خروجی این متد که از نوع socket هست . و متد دوم یعنی متد SocketSendReceive با کمک متد بالا به سرور
وصل می شود و با متد های send و recive اقدام به دریافت صفحه اول وب سایت می کند.
مثلا اگر متد( SocketSendReceive("www.sapka.ir/", 80 را به این شکل فراخوانی کنیم صفحه اول سایت sapka را به صورت کدهای html تحویل می گیریم.
همان طور که در مثال واضح است با متد GET از پروتکل HTTP اطلاعات در خواستی به سمت سرور ار سال شدند.

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


با سلام و احترام
ممنون از پاسختون
لینک زیر که معرفی فرموده بودید جواب نمیده و page not fount nemayesh mide
http://msdn.microsoft.com/en-us/libr...(v=VS.80).aspx (http://msdn.microsoft.com/en-us/libr...(v=VS.80).aspx)


لطفا بررسی بفرمایید

novinsite
دوشنبه 28 آذر 1390, 22:30 عصر
منتظر جواب اساتید هستم

REZAE2011
یک شنبه 11 دی 1390, 18:44 عصر
با سلام و احترام
ممنون از پاسختون
لینک زیر که معرفی فرموده بودید جواب نمیده و page not fount nemayesh mide
http://msdn.microsoft.com/en-us/libr...(v=VS.80).aspx

با سلام این کد همان کدی از MSDN است که متد هاش را توضیح دادم
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class GetSocket
{
private static Socket ConnectSocket(string server, int port)
{
Socket s = null;
IPHostEntry hostEntry = null;

// Get host related information.
hostEntry = Dns.GetHostEntry(server);

// Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
// an exception that occurs when the host IP Address is not compatible with the address family
// (typical in the IPv6 case).
foreach(IPAddress address in hostEntry.AddressList)
{
IPEndPoint ipe = new IPEndPoint(address, port);
Socket tempSocket =
new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

tempSocket.Connect(ipe);

if(tempSocket.Connected)
{
s = tempSocket;
break;
}
else
{
continue;
}
}
return s;
}

// This method requests the home page content for the specified server.
private static string SocketSendReceive(string server, int port)
{
string request = "GET / HTTP/1.1\r\nHost: " + server +
"\r\nConnection: Close\r\n\r\n";
Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
Byte[] bytesReceived = new Byte[256];

// Create a socket connection with the specified server and port.
Socket s = ConnectSocket(server, port);

if (s == null)
return ("Connection failed");

// Send request to the server.
s.Send(bytesSent, bytesSent.Length, 0);

// Receive the server home page content.
int bytes = 0;
string page = "Default HTML page on " + server + ":\r\n";

// The following will block until te page is transmitted.
do {
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
}
while (bytes > 0);

return page;
}

public static void Main(string[] args)
{
string host;
int port = 80;

if (args.Length == 0)
// If no server name is passed as argument to this program,
// use the current host name as the default.
host = Dns.GetHostName();
else
host = args[0];

string result = SocketSendReceive(host, port);
Console.WriteLine(result);
}
}

rahmatr
یک شنبه 11 دی 1390, 20:20 عصر
می تونید از سوکت پروگرامینگ و تابع post از پروتکل http با کمک سوکت های tcp اطلاعات را به وب سایت ارسال کنید.

مگر می خواهید مرورگر بنویسید که از سوکت استفاده می کنید!
برای این کار از کلاسهای مخصوص دات نت برای این کار استفاده کنید.

مثلا با استفاده از کلاس WebClient (http://msdn.microsoft.com/en-us/library/system.net.webclient(v=VS.100).aspx) می توانید به سادگی این کار را انجام دهید:
byte[] data = Encoding.UTF8.GetBytes("data for post");
WebClient client = new WebClient();
byte[] result = client.UploadData(@"http://www.site.com/", "post", data);
string resultString = Encoding.UTF8.GetString(result);

اینجا را هم ببینید:
HTTP POSTs and HTTP GETs with WebClient and C# and Faking a PostBack (http://www.hanselman.com/blog/HTTPPOSTsAndHTTPGETsWithWebClientAndCAndFakingAPos tBack.aspx)