Мой 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;
}
}