SalesForce Apex代码在文件下载时失败-EOF过早

SalesForce Apex代码在文件下载时失败-EOF过早,salesforce,apex-code,force.com,Salesforce,Apex Code,Force.com,在我的Apex代码中,我试图下载一个远程csv文件以在内存中处理。不幸的是,我在尝试获取文件时遇到System.callout异常:过早的EOF错误。我能够使用文件连接到服务器(我可以看到文件未准备好下载时返回的错误消息),因此连接详细信息可能不是问题所在 private static void processURL(String url, UserHelper__c helper){ String username = 'login'; String password = 'password

在我的Apex代码中,我试图下载一个远程csv文件以在内存中处理。不幸的是,我在尝试获取文件时遇到
System.callout异常:过早的EOF
错误。我能够使用文件连接到服务器(我可以看到文件未准备好下载时返回的错误消息),因此连接详细信息可能不是问题所在

private static void processURL(String url, UserHelper__c helper){

String username = 'login';
String password = 'password';

HttpRequest req = new HttpRequest();
HttpResponse res = new HttpResponse();
Http http = new Http();

req.setEndpoint(url);

Blob headerValue = Blob.valueOf(username + ':' + password);
String authorizationHeader = 'BASIC ' + EncodingUtil.base64Encode(headerValue);
req.setHeader('Authorization', authorizationHeader);

req.setMethod('GET');

try {
    System.debug('processURL Send request: '+req);
    res = http.send(req); //Premature EOF hits here.
    System.debug('processURL successful');

} catch(System.CalloutException e) {
    System.debug('processURL error: '+ e);
}

...

}

这是由服务器以缓冲方式发送响应引起的。SalesForce Apex代码似乎无法处理缓冲响应。我没有服务器端发生的所有详细信息,因此无法提供更多详细信息。

这是由于服务器以缓冲方式发送响应造成的。SalesForce Apex代码似乎无法处理缓冲响应。我没有服务器端发生的所有详细信息,因此无法提供更多详细信息。

可能是您引用的另一个Apex类文件无效。您是否从“Apex类”中完成了“编译所有类”“最近翻页以验证可能从此文件引用的任何其他Apex类是否有效?除此之外,可能是返回文件的端点出错了?可能是一个无效的HTTP响应被返回给Apex?谢谢您的回复。Apex类是一个独立类,因此其他类不可能不同步(同样,当服务器返回错误消息而不是文件时,它也能正常工作)。我可以使用浏览器和FireFox的Poster插件抓取返回的文件,这两个插件都没有任何明显的问题,因此我认为HTTP响应是有效的。您如何为浏览器提供creds?你是否有一个端点不需要授权就可以进行测试?浏览器信任被赋予Chrome中的授权弹出窗口。我没有不需要身份验证的端点。可能是您引用的另一个Apex类文件无效。您是否从“Apex类”中完成了“编译所有类”“最近翻页以验证可能从此文件引用的任何其他Apex类是否有效?除此之外,可能是返回文件的端点出错了?可能是一个无效的HTTP响应被返回给Apex?谢谢您的回复。Apex类是一个独立类,因此其他类不可能不同步(同样,当服务器返回错误消息而不是文件时,它也能正常工作)。我可以使用浏览器和FireFox的Poster插件抓取返回的文件,这两个插件都没有任何明显的问题,因此我认为HTTP响应是有效的。您如何为浏览器提供creds?你是否有一个端点不需要授权就可以进行测试?浏览器信任被赋予Chrome中的授权弹出窗口。我没有一个不需要auth的端点。