4

SFDCのAPEXコードからリモートエンドポイントにフォームを投稿しようとするAPEXメソッドがあります。

すべてが正しくエンコードされているようで、サーバーは200応答を返しますが、添付ファイルがリクエストとともに到着していません... SFDCは、送信される前に投稿本文のコンテンツを削除していますか?

HttpRequest req = new HttpRequest();
req.setHeader('Authorization','Basic '+EncodingUtil.base64Encode(Blob.valueOf('removed:removed')));
req.setHeader('Content-Type','multipart/form-data; boundary=-----------------------------153501500631101');
req.setHeader('X-Atlassian-Token','nocheck');
req.setMethod('POST');  
req.setEndpoint(endPoint+'issue/'+c.Internal_Bug_Number__c+'/attachments');

String body = '-----------------------------153501500631101\r\n';
body = body + 'Content-Disposition: form-data; name="Filedata"; filename="'+attachments[0].Name+'"\r\n';
body = body + 'Content-Type: '+attachments[0].ContentType+'\r\n';
body = body + 'Content-transfer-encoding: base64\r\n\r\n';
body = body + attachments[0].Body+ '\r\n';
body = body + '-----------------------------153501500631101--\r\n';

req.setBody(body);  
4

2 に答える 2

4

このソリューションを試してください。これは、私が提案したBlob+HttpResponseを使用した混乱したソリューションです。http://enreeco.blogspot.it/2013/01/salesforce-apex-post-mutipartform-data.html

于 2013-01-08T19:37:43.567 に答える
0

EncodingUtil.urlEncodeを使用して、フォームパラメータを確認できるはずです。https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restful_encodingUtil.htmを参照してください

于 2017-01-06T22:03:59.653 に答える