• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 491
  • Last Modified:

server committed an HTTP protocol violation

I finally got back to a project that I have not worked on in several months.  It was working as expected then, but now I am getting this error.  I suspect it has to do with the increased security from various system updates from Microsoft.  This portion of the program sends out the URL stored in "strHTML" merged with "searchtype" and "strURL" to create a string looking like

   ""http://library.pcc.edu/search/o?SEARCH=36083670"

I get the error at the "objResponse = objRequest.GetResponse" line...

   "Run-time exception thrown : System.Net.WebException - The underlying connection was closed: The server committed an HTTP protocol violation"

The opening system arguements are...

   Imports System.Text.RegularExpressions
   Imports System.IO

And the subroutine is...

Private Function Scrape(ByVal searchtype As String, ByVal strURL As String) As String
   Dim objRequest As Net.WebRequest                                     ' Request to a Uniform Resource Identifier  
   Dim TimeoutInSeconds As Integer = 10                                     ' Default responce timeout (Move to INI)
   Dim objResponse As Net.WebResponse                                     ' Response from a Uniform Resource Identifier
   Dim objStreamReceive As System.IO.Stream                     ' Holder for received encoded data
   Dim objEncoding As System.Text.Encoding                                     ' Unicode encoding method
   Dim objStreamRead As System.IO.StreamReader                     ' Character input  
   Dim strHTML As String = "http://library.pcc.edu/search/"           ' Move this string to INI eventually

   Try
      ' Setup web request and send obj
      objRequest = Net.WebRequest.Create(strHTML & searchtype & "?SEARCH=" & strURL)
      ' Convert request multiplier to milliseconds and start timer
      Request.Timeout = TimeoutInSeconds * 2000
      ' Response from internet request
      objResponse = objRequest.GetResponse
      ' Retrieve data stream from internet
      objStreamReceive = objResponse.GetResponseStream
      objEncoding = System.Text.Encoding.GetEncoding("utf-8")' Sets unicode encoding
      ' Reads characters from stream
      objStreamRead = New System.IO.StreamReader(objStreamReceive, objEncoding)
      ' Set function return value
      Scrape = objStreamRead.ReadToEnd()
      ' Check if available, then close response
      If Not objResponse Is Nothing Then
         ' Cleans up the resources and closes the stream
         objResponse.Close()
      End If
      Catch
         ' Error occured requesting data, Make a pretty error message
         Return "Network Error"
      End Try
End Function ' Scrape

Any ideas?

0
kpalmate
Asked:
kpalmate
  • 3
1 Solution
 
kpalmateAuthor Commented:
Well after getting really annoyed, I dug deeper.

http://dotnetjunkies.com/WebLog/afontes/archive/2004/10/15.aspx

I had seen this work around before, but geared to asp config files.  This shows the work around for ado executables like mine.  It worked.  
0
 
kpalmateAuthor Commented:
Until I recomplied the job and the config file disappeared.
Anyway to incorporate the work around into the program itself?
Any further ideas or comments.  These points are still live.
0
 
kpalmateAuthor Commented:
No problem
0
 
moduloCommented:
PAQed with points refunded (500)

modulo
Community Support Moderator
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now