代码之家  ›  专栏  ›  技术社区  ›  John Cappelletti

将curl转换为ASP.NET

  •  2
  • John Cappelletti  · 技术社区  · 6 年前

    我正在寻找一种方法将下面的curl转换为asp.net。

    curl -F f=@example.pdf "https://pdftables.com/api?key=ZZZ999&format=xml"
    

    我已经广泛地使用了以下函数来获取几乎所有的URL/内容,但是我对如何包含位于宿主Web服务器上的文件感到迷茫。

    Public Shared Function GetRemoteURL(getURL As String) As String
        Dim objReq As HttpWebRequest
        Dim objRsp As HttpWebResponse = Nothing
        Dim objRdr As StreamReader
        Dim objRes As String = ""
        Try
            objReq = DirectCast(WebRequest.Create(getURL), HttpWebRequest)
            objRsp = DirectCast(objReq.GetResponse(), HttpWebResponse)
            objRdr = New StreamReader(objRsp.GetResponseStream())
            objRes = objRdr.ReadToEnd()
        Catch
            objRes = ""
        Finally
            If Not objRsp Is Nothing Then objRsp.Close()
        End Try
        Return objRes.ToString()
    End Function
    

    任何建议/指示都将受到高度赞赏。

    约翰

    1 回复  |  直到 6 年前
        1
  •  2
  •   John Boker    6 年前

    您必须设置请求主体,例如:

    Public Function GetRemoteURL(getURL As String) As String
        Dim objReq As HttpWebRequest
        Dim objRsp As HttpWebResponse = Nothing
        Dim objRdr As StreamReader
        Dim objRes As String = "" 
        Try
            objReq = DirectCast(WebRequest.Create(getURL), HttpWebRequest)
    
            objReq.Method = "POST"
            Dim postData = "f=@example.pdf"
            Dim encoding As New ASCIIEncoding()
            Dim bytes = encoding.GetBytes(postData) 
            objReq.ContentLength = bytes.Length
            Dim stream = objReq.GetRequestStream()
            stream.Write(bytes, 0, bytes.Length)
    
            objRsp = DirectCast(objReq.GetResponse(), HttpWebResponse)
            objRdr = New StreamReader(objRsp.GetResponseStream())
            objRes = objRdr.ReadToEnd()
        Catch
            objRes = ""
        Finally
            If Not objRsp Is Nothing Then objRsp.Close()
        End Try
        Return objRes.ToString()
    End Function
    

    注意:我没有测试这个,所以它可能无法直接工作。