如何将端点作为参数传递给 Ballerina 中的函数
How to pass an endpoint as an parameter to a function in Ballerina
我正在使用 '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);
}
我正在使用 '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);
}