我正在使用 'wso2/ftp' 包进行一些文件传输过程,并且在我的主 .bal 文件中有一个 ftp:Client 端点,如下所示。
endpoint ftp:Client server1 {
protocol: ftp:FTP,
host:<ip_address>,
port:21,
secureSocket: {
basicAuth: {
username: <user_name>,
password: <password>
}
}
};
将此端点传递给另一个 .bal 文件中的公共(public)函数的方法是什么。
试图这样做,
function functionName(ftp:Client server1){
functionFromOtherBalFile(server1);
}
但得到一个错误
invalid action invocation, expected an endpoint
来自包含“functionFromOtherBalFile”实现的第二个 .bal 文件。
'functionFromOtherBalFile' 的实现:
public function functionFromOtherBalFile(ftp:Client server1){
var readFile=server1->get("/file.txt");
match readFile{
error err=>{
io:println("An error occured");
return err;
}
io:ByteChannel =>{
io:println("Success");
return readFile;
}
}
}
有人可以帮我解决这个问题。
最佳答案
以下是将端点作为参数传递给函数的方法。
import ballerina/http;
import ballerina/io;
function main (string... args) {
endpoint http:Client cheapAir {
url: "http://localhost:9090/CheapAir"
};
invoke(cheapAir);
}
function invoke(http:Client client) {
endpoint http:Client myEP = client;
json reqPayload = {firstName:"Sameera", lastName:"Jayasoma"};
http:Response response = check myEP -> post("/bookFlight", reqPayload);
json resPayload = check response.getJsonPayload();
io:println(resPayload);
}
关于ftp - 如何将端点作为参数传递给 Ballerina 中的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51351030/