PDA

View Full Version : باز کردن سایت http با وینساک



niksalehi
جمعه 01 اسفند 1393, 17:06 عصر
سلام خدمت همه ی عزیزان
میخواستم توسط winsock ، سورس صفحه ی زیر رو بگیرم:

https://msdn.microsoft.com/en-us/default.aspx

به https دقت کنین.

m0hamad_design
جمعه 01 اسفند 1393, 23:24 عصر
سلام دوست عزیز

متاسفانه الان ویبی روی سیستمم نصب نیست و نصب هم نمیشه که بخوام تست کنم و برات توضیح بدم
ولی تقریبی یک چیزایی میگم شاید بدردت بخوره

همونطور ک میدونی ( یا شاید هم نمیدونی ) وقتی شما بخوای توی شبکه با یک سرور یا سیستم دیگه ارتباط برقرار کنی نیاز داری که به آیپی ( یا آدرس ) اون سیستم با یک پورت مشخص وصل بشی

(اول یک توضیح مختصری میدم)
پورت پیش فرض صفحات وب "80" هست , که البته ماله صفحاتیه که با "http" شروع میشه . ولی اینجا آدرس ما با "https" شروع شده (برای امنیت بیشتر)
پورت پیش فرض توی پروتکل "https" پورت 443 هست

پس اگه شما کار با وینسوک رو بلد باشی کافیه به آدرس "msdn.microsoft.com/en-us/default.aspx (https://msdn.microsoft.com/en-us/default.aspx)" با پورت 443 وصل بشی ( چون داره از https استفاده میکنه , باید به پورت 443 وصل بشی )


Winsock1.Connect("msdn.microsoft.com",443)


بعد هم دیتا رو هدر ها رو بفرستی و دیتا رو بصورت کامل دریافت کنی


.: یاعلی :..: موفق باشید :.

niksalehi
پنج شنبه 07 اسفند 1393, 19:30 عصر
تشکر دوست عزیز، اما این روش رو قبلا بررسی کردم و به نتیجه ای نرسیدم!

meys34
جمعه 08 اسفند 1393, 16:58 عصر
تشکر دوست عزیز، اما این روش رو قبلا بررسی کردم و به نتیجه ای نرسیدم!

طبیعتا نباید این روش جواب بده...

کانکت میشه ولی مشکل از این قسمت هست:


بعد هم دیتا رو هدر ها رو بفرستی و دیتا رو بصورت کامل دریافت کنی


مشکل اینجاست که دیتا ها و هدر ها در HTTPS کد شده فرستاده میشن...
اینترنت رو خیلی گشتم ولی راهی پیدا نکردم ...

به هر حال برای کانکت شدن به HTTPS بهتره از خود مایکروسافت کمک بگیریم....

Private Sub Command1_Click()
Dim Http As Object
Dim sUrl As String


On Error GoTo ErrorHandler
Set Http = CreateObject("MSXML2.XMLHTTP")
sUrl = "https://msdn.microsoft.com/en-us/default.aspx"

Http.Open "GET", sUrl, True
Http.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
Http.Send

Debug.Print Http.ResponseText

Set Http = Nothing
Exit Sub

ErrorHandler:
MsgBox Err.Description, , Err.Number
End Sub


منبع:http://stackoverflow.com/questions/22636537/establishing-an-https-connection-to-server-using-vb-6-0

niksalehi
شنبه 09 اسفند 1393, 17:43 عصر
meys34 عزیز یک دنیا ممنون از وقتی که گذاشتین، خیلی از سوال هام رو شما جواب دادین.. لطف کردین
فقط یه سوال :-؟
کارایی MSXML2 در مقایسه با winsock چقدره؟
از نظر سرعت و هنگ نکردن برنامه و ...

meys34
شنبه 09 اسفند 1393, 18:29 عصر
به نظرم میرسه که اگه از کد زیر استفاده کنید بهتر باشه....

کد بالایی رو چون از جای دیگه کپی پیست کرده بودم دیگه دستش نزدم...

ولی توی این کد از Microsoft.XMLHTTP استفاده کردم که برای جاوااسکریپت و Ajax استفاده میشه و
توی همه ویندوز ها هم هست... در این مورد قبلا مطالعه کردم و مطمعنم که مشکلی ایجاد نمیکنه...


در مورد هنگ یا کند بودن اطلاعاتی ندارم...





Private Sub Command1_Click()
Dim Http As Object
Dim sUrl As String


On Error GoTo ErrorHandler
Set Http = CreateObject("Microsoft.XMLHTTP")
sUrl = "https://msdn.microsoft.com/en-us/default.aspx"

Http.Open "GET", sUrl, False
Http.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
Http.Send

Debug.Print Http.ResponseText

Set Http = Nothing
Exit Sub

ErrorHandler:
MsgBox Err.Description, , Err.Number
End Sub

negative60
شنبه 09 اسفند 1393, 18:57 عصر
شما يا ميتونی به جای وينساک از WinHTTP خود ويندوز استفاده کنيد که راحت تره و سرعت بيشتری داره
يا اينکه به وسيله SSL به سايت وصل بشيد, اينجا رو (http://www.vbforums.com/showthread.php?635398-VB6-HMAC-SHA-256-HMAC-SHA-1-Using-Crypto-API&p=4513999) نگاه کن به دردت ميخوره