Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Text
- Imports System.IO
- Imports System.Collections.Specialized
- Imports Newtonsoft.Json.Linq
- Imports System.Threading
- Imports AutoMtGox.Sitesource.Log
- Namespace Sitesource.Network
- ''' <summary>
- ''' A simple request class that return a response string.
- ''' </summary>
- ''' <remarks></remarks>
- Public Class Request
- Private _logger As SimpleLogger
- ''' <summary>
- ''' New
- ''' </summary>
- ''' <param name="logger"></param>
- ''' <remarks></remarks>
- Public Sub New(ByRef logger As SimpleLogger)
- _logger = logger
- End Sub
- ''' <summary>
- ''' GetResponse
- ''' </summary>
- ''' <param name="url">The url where the request is sent to.</param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Function GetResponse(ByVal url As String) As String
- Return GetResponse(url, Nothing)
- End Function
- ''' <summary>
- ''' GetResponse with data
- ''' </summary>
- ''' <param name="url">The url where the request is sent to.</param>
- ''' <param name="parameters">Post data.</param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Function GetResponse(ByVal url As String, ByVal parameters As NameValueCollection) As String
- Dim request As HttpWebRequest = HttpWebRequest.Create(url)
- request.UserAgent = My.Settings.DefaultUserAgent
- If parameters IsNot Nothing Then
- request.Method = Util.RequestMethodPOST
- Dim encoding As New UTF8Encoding
- Dim byteArray As Byte() = encoding.GetBytes(Util.GetPostString(parameters))
- request.ContentLength = byteArray.Length
- request.ContentType = Util.FormContentType
- Dim dataStream As Stream = request.GetRequestStream()
- dataStream.Write(byteArray, 0, byteArray.Length)
- dataStream.Close()
- 'make sure that any password remanents are out of memory, and trigger a garbage collection
- parameters = Nothing
- byteArray = Nothing
- System.GC.Collect()
- Else
- request.Method = Util.RequestMethodGET
- End If
- Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
- If response.StatusCode = HttpStatusCode.Accepted Or HttpStatusCode.Found Then
- Dim receiveStream As Stream = response.GetResponseStream()
- Dim readStream As New StreamReader(receiveStream, System.Text.Encoding.UTF8)
- Try
- Return readStream.ReadToEnd()
- Catch ex As Exception
- _logger.WriteEntry(LogEntryType.Error, "GetResponse() {0}.", ex.ToString())
- End Try
- Else
- _logger.WriteEntry(LogEntryType.Error, "GetResponse() status code is {0}. Status code {1} or {2} expected.", response.StatusCode, HttpStatusCode.Accepted, HttpStatusCode.Found)
- End If
- Return Nothing
- End Function
- End Class
- End Namespace
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement