Как я могу отправить файл в мой API с помощью VB 2008 - PullRequest
0 голосов
/ 24 сентября 2019

Мой API работает как конвертер из pdf в base64, тогда результат будет преобразован в изображение в vb, я протестировал API на почтальоне, и он работает, но когда я собираюсь реализовать его на vb 2008, я не могу загрузить файлна моем API, спасибо

Я уже попробовал header.add, затем поместите расположение содержимого

Вот код в vb

    Private Sub btnpay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnpay.Click


        Dim pdfpath As String = "tmpschedsign.pdf"
        'messagebox.show(pdfpath)

        Dim apiurl As String = "http://api.owtel.com/api/v1/test_method?method=pdfconvert"
        Dim mywebreq As HttpWebRequest
        Dim mywebresp As HttpWebResponse
        Dim sr As StreamReader

        Dim pdffile As New IO.FileInfo(pdfpath)
        Dim filename As String = pdffile.Name
        Dim filestream As FileStream = File.OpenRead(pdfpath)
        Dim pdfdata As Byte()

        mywebreq = DirectCast(WebRequest.Create(apiurl), HttpWebRequest)
        mywebreq.Method = "post"
        mywebreq.UserAgent = "api-explorer-client"
        mywebreq.ContentType = "multipart/form-data"
        mywebreq.ContentLength = pdffile.Length
        'mywebreq.headers.add("name:args" & pdfpath)

        Dim mystream As Stream = mywebreq.GetRequestStream()

        pdfdata = New Byte((filestream.Length) - 1) {}
        filestream.Read(pdfdata, 0, pdfdata.Length)
        filestream.Close()

        If pdfdata.Length > 0 Then
            mystream.Write(pdfdata, 0, pdfdata.Length)
            mystream.Close()
        End If

        mywebresp = DirectCast(mywebreq.GetResponse(), HttpWebResponse)
        sr = New StreamReader(mywebresp.GetResponseStream())
        Dim strjson__2 As String = sr.ReadToEnd()

        baseStr = strjson__2
        MessageBox.Show(strjson__2)
        'basestr = basestr.replace(base64str, "")
        'dim imgbytes as byte() = convert.frombase64string(basestr)
        'dim ms as new memorystream(imgbytes, 0, imgbytes.length)
        'dim tmpimg as image = image.fromstream(ms, true)
        'tmpimg.save("tmpschedsign.png", imageformat.png)


    End Sub

Вот функция API

function pdfConvert($data){
    // print_r($_FILES);
    // print_r($_REQUEST);
    if (!empty($data)){
      $img = $data->getPathname();
  $image = new Imagick($img);
  $image->setResolution(300,300);
  $image->setImageFormat('jpg');
  $original = clone $image;
    $original->cropimage($original->getImageWidth() / 2, $original->getImageHeight(), 0, 0);
    $image->normalizeImage(Imagick::CHANNEL_DEFAULT);
    $image->compositeimage($original, \Imagick::COMPOSITE_ATOP, 0, 0);
    header("Content-Type: image/jpg");    


  $image = base64_encode($image);
  $response = [
    'image' => $image,
        ];
        return $response;
      }else{
        $response = [
          'failed' => 'Error something',
          'data'=>$data
              ];
              return $response;

}

  }
...