29-08-13, 02:07 PM
29-08-13, 02:24 PM
قمت بتوضيح ذلك بالكامل في مقالتي
[سلسلة التعامل مع الويب] - ارسال الطلبات HttpWebRequset
^ هناك جزئية كاملة تتحدث عن المطلوب (في المشاركة الثالثة)
لازلت اقول ياجماعة
اي خدمة تريد الحصول عليها من اي موقع استعمل الطلبااات (WEB REQUSET)
[سلسلة التعامل مع الويب] - ارسال الطلبات HttpWebRequset
^ هناك جزئية كاملة تتحدث عن المطلوب (في المشاركة الثالثة)
لازلت اقول ياجماعة
اي خدمة تريد الحصول عليها من اي موقع استعمل الطلبااات (WEB REQUSET)
29-08-13, 02:28 PM
لكن أحتاج طرقة بال vb.net
29-08-13, 02:32 PM
elta كتب :لكن أحتاج طرقة بال vb.net
وله يهمك
استطيع كتابة الكلاس من جديد بالفيجوال بيسك
لكن المشكلة هل ستستطيع استخدام الكلاس ؟
لانك لازم تجيب بعض المعلومات من اداة Live http header
29-08-13, 02:41 PM
لا + لو يمكنك إعطائي سورس
لأتعلم منه
لأتعلم منه
29-08-13, 03:08 PM
elta كتب :لا + لو يمكنك إعطائي سورس
لأتعلم منه
اممم
المشكلة ليست من السورس
المشكلة انك بتحتاج الى تطبيق الrequset لإستخراج المعلومات بواسطة live header وكتابة طلب
فلو اعطيتك السورس مابتستفيد لان بضل هناك شيئ ناقص في الموضوع
يعني بتقول هذا من وين جاب هذا الكلام وليش كتب جدي ؟؟!
وايضا من كل موقع لموقع تختلف المعطيات يعني لو عطيتك الطريقة على موقع gulfup
ورحت تجربها على 0xx0 مابتنفع
لازم تعطيها متغيرات اخرى عشان تقدر ترفع الى 0xx0
--
حبيبي هذي الامور انت لازم تتعلمها ماتصلح احد يعطيك الطريقة لأنها ستكون لشيئ واحد بس
انا فقط سأوفر لك الفئة المستعملة في الرفع لأي موقع محولة للفيجوال بيسك :
PHP كود :
'All Copyright to alshakiLLah
'vb4arb
''' <summary>
''' ارفع ملفاتك لمراكز الرفع
''' </summary>
''' <remarks></remarks>
Public Class UploadStationPOST
Public Shared Function PostToStations(ByVal PostURL As String, ByVal PostDataParameters As Dictionary(Of String, Object)) As String
Dim boundary As String = "---------------------------" + DateTime.Now.Ticks.ToString("x")
Dim boundaryBytes As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr & vbLf & "--") & boundary) + vbCr & vbLf)
Dim request As Net.HttpWebRequest = DirectCast(Net.WebRequest.Create(PostURL), Net.HttpWebRequest)
request.ContentType = Convert.ToString("multipart/form-data; boundary=") & boundary
request.Method = "POST"
request.KeepAlive = True
request.Credentials = System.Net.CredentialCache.DefaultCredentials
If PostDataParameters IsNot Nothing AndAlso PostDataParameters.Count > 0 Then
Using requestStream As IO.Stream = request.GetRequestStream()
For Each pair As KeyValuePair(Of String, Object) In PostDataParameters
requestStream.Write(boundaryBytes, 0, boundaryBytes.Length)
If TypeOf pair.Value Is FileDisposition Then
Dim file__1 As FileDisposition = DirectCast(pair.Value, FileDisposition)
Dim header As String = (Convert.ToString((Convert.ToString("Content-Disposition: form-data; name=""" + pair.Key + """; filename=""") & file__1.Name) + """" & vbCr & vbLf & "Content-Type: ") & file__1.ContentType) + vbCr & vbLf & vbCr & vbLf
Dim bytes As Byte() = System.Text.Encoding.UTF8.GetBytes(header)
'كتابة معلومات الملف
requestStream.Write(bytes, 0, bytes.Length)
Dim buffer As Byte() = New Byte(0) {}
'تجهيز المصفوفة
Dim bytesRead As Integer
' كتابة بايتات الملف
Using fileStream As IO.FileStream = IO.File.OpenRead(file__1.FilePath)
While (InlineAssignHelper(bytesRead, fileStream.Read(buffer, 0, buffer.Length))) <> 0
requestStream.Write(buffer, 0, bytesRead)
End While
fileStream.Close()
End Using
Else
'البارمترات الاخرى غير بارمتار فايلس
Dim data As String = "Content-Disposition: form-data; name=""" + pair.Key + """" & vbCr & vbLf & vbCr & vbLf + pair.Value
Dim bytes As Byte() = System.Text.Encoding.UTF8.GetBytes(data)
requestStream.Write(bytes, 0, bytes.Length)
End If
Next
Dim trailer As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr & vbLf & "--") & boundary) + "--" & vbCr & vbLf)
requestStream.Write(trailer, 0, trailer.Length)
requestStream.Close()
End Using
End If
'الرد
Using response As Net.WebResponse = request.GetResponse()
Using responseStream As IO.Stream = response.GetResponseStream()
Using reader As New IO.StreamReader(responseStream, System.Text.Encoding.UTF8)
Return reader.ReadToEnd()
End Using
End Using
End Using
End Function
Public Class FileDisposition
Public Property Name() As String
Get
Return m_Name
End Get
Set(ByVal value As String)
m_Name = Value
End Set
End Property
Private m_Name As String
Public Property ContentType() As String
Get
Return m_ContentType
End Get
Set(ByVal value As String)
m_ContentType = Value
End Set
End Property
Private m_ContentType As String
Public Property FilePath() As String
Get
Return m_FilePath
End Get
Set(ByVal value As String)
m_FilePath = Value
End Set
End Property
Private m_FilePath As String
End Class
Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
target = value
Return value
End Function
End Class
اما طريقة الاستخدام (لموقع IraqUp فقط ولاتصلح لغيره)
PHP كود :
Dim postURL As String = "http://www.iraqup.com/index2.php"
'ResultButton.Enabled = false;
Dim ext As String = System.IO.Path.GetExtension("Ahmed.jpg").ToLower()
ext = ext.Remove(0, 1)
If ext = "jpg" Then
ext = "jpeg"
End If
'on internet jpg is named jpeg
Dim para As New Dictionary(Of String, Object)()
'para
'اسم الصورة
'صيغة الصورة
'مكان الصورة
para.Add("userfile", New UploadStationPOST.FileDisposition() With { _
.Name = "ali.png", _
.ContentType = "image/png", _
.FilePath = "c://ali.png" _
})
'post
Dim _result = UploadStationPOST.PostToStations(postURL, para)
اذا كنت تريد الرفع لموقع اخر عليك بتغيير المعطيات في الكود اعلاه ،
والمعطيات تستطيع الحصول عليها من اداة Live http header
وقد شرح ذلك بالتفصيل في المقالة
29-08-13, 03:29 PM
شكرا أخي على الشرح
29-08-13, 05:29 PM
الشاكي لله كتب :
اممم
المشكلة ليست من السورس
المشكلة انك بتحتاج الى تطبيق الrequset لإستخراج المعلومات بواسطة live header وكتابة طلب
فلو اعطيتك السورس مابتستفيد لان بضل هناك شيئ ناقص في الموضوع
يعني بتقول هذا من وين جاب هذا الكلام وليش كتب جدي ؟؟!
وايضا من كل موقع لموقع تختلف المعطيات يعني لو عطيتك الطريقة على موقع gulfup
ورحت تجربها على 0xx0 مابتنفع
لازم تعطيها متغيرات اخرى عشان تقدر ترفع الى 0xx0
--
حبيبي هذي الامور انت لازم تتعلمها ماتصلح احد يعطيك الطريقة لأنها ستكون لشيئ واحد بس
انا فقط سأوفر لك الفئة المستعملة في الرفع لأي موقع محولة للفيجوال بيسك :
PHP كود :
'All Copyright to alshakiLLah
'vb4arb
''' <summary>
''' ارفع ملفاتك لمراكز الرفع
''' </summary>
''' <remarks></remarks>
Public Class UploadStationPOST
Public Shared Function PostToStations(ByVal PostURL As String, ByVal PostDataParameters As Dictionary(Of String, Object)) As String
Dim boundary As String = "---------------------------" + DateTime.Now.Ticks.ToString("x")
Dim boundaryBytes As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr & vbLf & "--") & boundary) + vbCr & vbLf)
Dim request As Net.HttpWebRequest = DirectCast(Net.WebRequest.Create(PostURL), Net.HttpWebRequest)
request.ContentType = Convert.ToString("multipart/form-data; boundary=") & boundary
request.Method = "POST"
request.KeepAlive = True
request.Credentials = System.Net.CredentialCache.DefaultCredentials
If PostDataParameters IsNot Nothing AndAlso PostDataParameters.Count > 0 Then
Using requestStream As IO.Stream = request.GetRequestStream()
For Each pair As KeyValuePair(Of String, Object) In PostDataParameters
requestStream.Write(boundaryBytes, 0, boundaryBytes.Length)
If TypeOf pair.Value Is FileDisposition Then
Dim file__1 As FileDisposition = DirectCast(pair.Value, FileDisposition)
Dim header As String = (Convert.ToString((Convert.ToString("Content-Disposition: form-data; name=""" + pair.Key + """; filename=""") & file__1.Name) + """" & vbCr & vbLf & "Content-Type: ") & file__1.ContentType) + vbCr & vbLf & vbCr & vbLf
Dim bytes As Byte() = System.Text.Encoding.UTF8.GetBytes(header)
'كتابة معلومات الملف
requestStream.Write(bytes, 0, bytes.Length)
Dim buffer As Byte() = New Byte(0) {}
'تجهيز المصفوفة
Dim bytesRead As Integer
' كتابة بايتات الملف
Using fileStream As IO.FileStream = IO.File.OpenRead(file__1.FilePath)
While (InlineAssignHelper(bytesRead, fileStream.Read(buffer, 0, buffer.Length))) <> 0
requestStream.Write(buffer, 0, bytesRead)
End While
fileStream.Close()
End Using
Else
'البارمترات الاخرى غير بارمتار فايلس
Dim data As String = "Content-Disposition: form-data; name=""" + pair.Key + """" & vbCr & vbLf & vbCr & vbLf + pair.Value
Dim bytes As Byte() = System.Text.Encoding.UTF8.GetBytes(data)
requestStream.Write(bytes, 0, bytes.Length)
End If
Next
Dim trailer As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr & vbLf & "--") & boundary) + "--" & vbCr & vbLf)
requestStream.Write(trailer, 0, trailer.Length)
requestStream.Close()
End Using
End If
'الرد
Using response As Net.WebResponse = request.GetResponse()
Using responseStream As IO.Stream = response.GetResponseStream()
Using reader As New IO.StreamReader(responseStream, System.Text.Encoding.UTF8)
Return reader.ReadToEnd()
End Using
End Using
End Using
End Function
Public Class FileDisposition
Public Property Name() As String
Get
Return m_Name
End Get
Set(ByVal value As String)
m_Name = Value
End Set
End Property
Private m_Name As String
Public Property ContentType() As String
Get
Return m_ContentType
End Get
Set(ByVal value As String)
m_ContentType = Value
End Set
End Property
Private m_ContentType As String
Public Property FilePath() As String
Get
Return m_FilePath
End Get
Set(ByVal value As String)
m_FilePath = Value
End Set
End Property
Private m_FilePath As String
End Class
Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T
target = value
Return value
End Function
End Class
اما طريقة الاستخدام (لموقع IraqUp فقط ولاتصلح لغيره)
PHP كود :
Dim postURL As String = "http://www.iraqup.com/index2.php"
'ResultButton.Enabled = false;
Dim ext As String = System.IO.Path.GetExtension("Ahmed.jpg").ToLower()
ext = ext.Remove(0, 1)
If ext = "jpg" Then
ext = "jpeg"
End If
'on internet jpg is named jpeg
Dim para As New Dictionary(Of String, Object)()
'para
'اسم الصورة
'صيغة الصورة
'مكان الصورة
para.Add("userfile", New UploadStationPOST.FileDisposition() With { _
.Name = "ali.png", _
.ContentType = "image/png", _
.FilePath = "c://ali.png" _
})
'post
Dim _result = UploadStationPOST.PostToStations(postURL, para)
اذا كنت تريد الرفع لموقع اخر عليك بتغيير المعطيات في الكود اعلاه ،
والمعطيات تستطيع الحصول عليها من اداة Live http header
وقد شرح ذلك بالتفصيل في المقالة
ما شاء الله عليك، أنا استفدت منك يمكن اكثر من السائل.