关闭编译器服务API

发布于 2024-10-13 08:53:07 字数 1873 浏览 6 评论 0原文

尝试将闭包编译器服务集成到我的一个应用程序中,但遇到了一些问题。

返回的错误是“(413) 请求实体太大”。听起来很合理,但我知道事实上该服务接受的文件比我发送的文件大。

    Private _HttpWebRequest As HttpWebRequest
Private _Result As StringBuilder
Private Const ClosureWebServiceURL As String = "http://closure-compiler.appspot.com/compile?output_format=xml&output_info=compiled_code" &
                                                                    "&output_info=warnings" &
                                                                    "&output_info=errors" &
                                                                    "&output_info=statistics" &
                                                                    "&compilation_level=ADVANCED_OPTIMIZATIONS" &
                                                                    "&warning_level=default" &
                                                                    "&js_code={0}"





_Result = New StringBuilder
_HttpWebRequest = DirectCast(WebRequest.Create(String.Format(ClosureWebServiceURL, HttpUtility.UrlEncode(_Script))), HttpWebRequest)
_HttpWebRequest.Method = "POST"
_HttpWebRequest.ContentType = "application/x-www-form-urlencoded"
_HttpWebRequest.ContentLength = 0

Dim response As WebResponse = _HttpWebRequest.GetResponse()

Using responseStream As Stream = response.GetResponseStream
     Dim encoding As Encoding = System.Text.Encoding.GetEncoding("utf-8")
     Using readStream As New StreamReader(responseStream, encoding)
          Dim read(256) As Char
          Dim count As Integer = readStream.Read(read, 0, 256)
          While count > 0
              Dim str As New String(read, 0, count)
              _Result.Append(str)
              count = readStream.Read(read, 0, 256)
          End While
     End Using
End Using

有什么想法吗?

Trying to intergrate the closure compiler service into one of my applications and having some issues.

Error being returned is "(413) Request Entity Too Large." Sounds reasonable but I know for a fact the service accepts files larger then the one I am sending it.

    Private _HttpWebRequest As HttpWebRequest
Private _Result As StringBuilder
Private Const ClosureWebServiceURL As String = "http://closure-compiler.appspot.com/compile?output_format=xml&output_info=compiled_code" &
                                                                    "&output_info=warnings" &
                                                                    "&output_info=errors" &
                                                                    "&output_info=statistics" &
                                                                    "&compilation_level=ADVANCED_OPTIMIZATIONS" &
                                                                    "&warning_level=default" &
                                                                    "&js_code={0}"





_Result = New StringBuilder
_HttpWebRequest = DirectCast(WebRequest.Create(String.Format(ClosureWebServiceURL, HttpUtility.UrlEncode(_Script))), HttpWebRequest)
_HttpWebRequest.Method = "POST"
_HttpWebRequest.ContentType = "application/x-www-form-urlencoded"
_HttpWebRequest.ContentLength = 0

Dim response As WebResponse = _HttpWebRequest.GetResponse()

Using responseStream As Stream = response.GetResponseStream
     Dim encoding As Encoding = System.Text.Encoding.GetEncoding("utf-8")
     Using readStream As New StreamReader(responseStream, encoding)
          Dim read(256) As Char
          Dim count As Integer = readStream.Read(read, 0, 256)
          While count > 0
              Dim str As New String(read, 0, count)
              _Result.Append(str)
              count = readStream.Read(read, 0, 256)
          End While
     End Using
End Using

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不可一世的女人 2024-10-20 08:53:07

将请求数据移至 POST 的 RequestStream,而不是使用查询字符串。

Private _HttpWebRequest As HttpWebRequest
Private _Result As StringBuilder
Private Const ClosureWebServiceURL As String = "http://closure-compiler.appspot.com/compile?"
Private Const ClosureWebServicePOSTData As String = "output_format=xml&output_info=compiled_code" &
                                                                "&output_info=warnings" &
                                                                "&output_info=errors" &
                                                                "&output_info=statistics" &
                                                                "&compilation_level=ADVANCED_OPTIMIZATIONS" &
                                                                "&warning_level=default" &
                                                                "&js_code={0}"


    '//Build's a large javascript for testing
    Dim _Script As String = ""
    For I = 1 To 100
        _Script &= "function hello_" & I & "(name) {  alert('Hello, ' + name);}hello('New user');"
    Next

    '//Create the POST data
    Dim Data = String.Format(ClosureWebServicePOSTData, HttpUtility.UrlEncode(_Script))

    _Result = New StringBuilder
    _HttpWebRequest = DirectCast(WebRequest.Create(ClosureWebServiceURL), HttpWebRequest)
    _HttpWebRequest.Method = "POST"
    _HttpWebRequest.ContentType = "application/x-www-form-urlencoded"
    '//Set the content length to the length of the data. This might need to change if you're using characters that take more than 256 bytes
    _HttpWebRequest.ContentLength = Data.Length
    '//Write the request stream
    Using SW As New StreamWriter(_HttpWebRequest.GetRequestStream())
        SW.Write(Data)
    End Using


    Dim response As WebResponse = _HttpWebRequest.GetResponse()

    Using responseStream As Stream = response.GetResponseStream
        Dim encoding As Encoding = System.Text.Encoding.GetEncoding("utf-8")
        Using readStream As New StreamReader(responseStream, encoding)
            Dim read(256) As Char
            Dim count As Integer = readStream.Read(read, 0, 256)
            While count > 0
                Dim str As New String(read, 0, count)
                _Result.Append(str)
                count = readStream.Read(read, 0, 256)
            End While
        End Using
    End Using


    Trace.WriteLine(_Result)

Move your request data over to the POST's RequestStream instead of using the querystring.

Private _HttpWebRequest As HttpWebRequest
Private _Result As StringBuilder
Private Const ClosureWebServiceURL As String = "http://closure-compiler.appspot.com/compile?"
Private Const ClosureWebServicePOSTData As String = "output_format=xml&output_info=compiled_code" &
                                                                "&output_info=warnings" &
                                                                "&output_info=errors" &
                                                                "&output_info=statistics" &
                                                                "&compilation_level=ADVANCED_OPTIMIZATIONS" &
                                                                "&warning_level=default" &
                                                                "&js_code={0}"


    '//Build's a large javascript for testing
    Dim _Script As String = ""
    For I = 1 To 100
        _Script &= "function hello_" & I & "(name) {  alert('Hello, ' + name);}hello('New user');"
    Next

    '//Create the POST data
    Dim Data = String.Format(ClosureWebServicePOSTData, HttpUtility.UrlEncode(_Script))

    _Result = New StringBuilder
    _HttpWebRequest = DirectCast(WebRequest.Create(ClosureWebServiceURL), HttpWebRequest)
    _HttpWebRequest.Method = "POST"
    _HttpWebRequest.ContentType = "application/x-www-form-urlencoded"
    '//Set the content length to the length of the data. This might need to change if you're using characters that take more than 256 bytes
    _HttpWebRequest.ContentLength = Data.Length
    '//Write the request stream
    Using SW As New StreamWriter(_HttpWebRequest.GetRequestStream())
        SW.Write(Data)
    End Using


    Dim response As WebResponse = _HttpWebRequest.GetResponse()

    Using responseStream As Stream = response.GetResponseStream
        Dim encoding As Encoding = System.Text.Encoding.GetEncoding("utf-8")
        Using readStream As New StreamReader(responseStream, encoding)
            Dim read(256) As Char
            Dim count As Integer = readStream.Read(read, 0, 256)
            While count > 0
                Dim str As New String(read, 0, count)
                _Result.Append(str)
                count = readStream.Read(read, 0, 256)
            End While
        End Using
    End Using


    Trace.WriteLine(_Result)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文