应用内购买将交易收据发送到服务器

发布于 2024-11-09 08:25:39 字数 4396 浏览 0 评论 0原文

我创建了一个电子书阅读器应用程序和它支持应用内购买。生成的交易收据被发送到 jboss 服务器。以下代码已编写用于将交易收据发送到服务器。这里我将 .xml 文件转换为 NSdata &将 NSdata 对象传递给服务器。

-(IBAction)download:(id)sender{
    NSString *XMLPath = [[NSBundle mainBundle] pathForResource:@"ebook" ofType:@"xml"];

    NSString *name = @"photo1"; 
    NSData *imageData = [NSData dataWithContentsOfFile:XMLPath];
    NSLog(@"size of imageDATA %d",imageData.length);
    //NSString *Datastring = [NSString strin]
    NSString *dataString = [[NSString alloc] initWithData:imageData encoding:NSUTF8StringEncoding];
    //transaction.transactionReceipt;
    //NSData * imageData = UIImagePNGRepresentation(image); 
    // NSString *postLength = [NSString stringWithFormat:@"%d", [imageData length]];        
    NSString *urlString = @"http://172.18.11.162:8080/DRM_15April/ReceiptDownload";
    //urlString = [urlString stringByAppendingString:@"tranReceipt"];
    //urlString = [urlString stringByAppendingString:@"&name="];
    //urlString = [urlString stringByAppendingString:name]; 
    //urlString = [urlString stringByAppendingString:@"&lang=en_US.UTF-8"]; 
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:urlString]];
    NSLog(@"the url is %@",urlString);
    [request setHTTPMethod:@"POST"];
    NSMutableData *postBody = [NSMutableData data];



    //add data field and file data
    [postBody appendData:[NSData dataWithData:imageData]];
    NSLog(@"size of DATA %d",postBody.length);
    // ---------

    [request setHTTPBody:postBody];

    // now lets make the connection to the web
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

    NSLog(@"return strind is %@",returnString);

}

这正在我的控制台窗口中记录以下内容。

-[KitabooBookShelf download:] the url is http://172.18.11.162:8080/DRM_15April/ReceiptDownload
(1) -[KitabooBookShelf download:] size of DATA 364
(1) -[KitabooBookShelf download:] return strind is <html><head><title>JBossWeb/2.0.1.GA - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>java.io.StreamCorruptedException: invalid stream header: 3C3F786D
    java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:782)
    java.io.ObjectInputStream.&lt;init&gt;(ObjectInputStream.java:279)
    com.hurix.drm.servlet.ReceiptDownload.doPost(ReceiptDownload.java:40)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    com.hurix.drm.common.filter.SessionFilter.doFilter(SessionFilter.java:75)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
</pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the JBossWeb/2.0.1.GA logs.</u></p><HR size="1" noshade="noshade"><h3>JBossWeb/2.0.1.GA</h3></body></html>

谁能告诉我我的应用程序方面可能出了什么问题。

I've created an e-book reader app & it supports in-app-purchase. The transaction receipt which gets generated is being sent to a jboss server. The following piece of code has been written to send the transaction receipt to server. here i'm converting .xml file to NSdata & passing the NSdata object to server.

-(IBAction)download:(id)sender{
    NSString *XMLPath = [[NSBundle mainBundle] pathForResource:@"ebook" ofType:@"xml"];

    NSString *name = @"photo1"; 
    NSData *imageData = [NSData dataWithContentsOfFile:XMLPath];
    NSLog(@"size of imageDATA %d",imageData.length);
    //NSString *Datastring = [NSString strin]
    NSString *dataString = [[NSString alloc] initWithData:imageData encoding:NSUTF8StringEncoding];
    //transaction.transactionReceipt;
    //NSData * imageData = UIImagePNGRepresentation(image); 
    // NSString *postLength = [NSString stringWithFormat:@"%d", [imageData length]];        
    NSString *urlString = @"http://172.18.11.162:8080/DRM_15April/ReceiptDownload";
    //urlString = [urlString stringByAppendingString:@"tranReceipt"];
    //urlString = [urlString stringByAppendingString:@"&name="];
    //urlString = [urlString stringByAppendingString:name]; 
    //urlString = [urlString stringByAppendingString:@"&lang=en_US.UTF-8"]; 
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:urlString]];
    NSLog(@"the url is %@",urlString);
    [request setHTTPMethod:@"POST"];
    NSMutableData *postBody = [NSMutableData data];



    //add data field and file data
    [postBody appendData:[NSData dataWithData:imageData]];
    NSLog(@"size of DATA %d",postBody.length);
    // ---------

    [request setHTTPBody:postBody];

    // now lets make the connection to the web
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

    NSLog(@"return strind is %@",returnString);

}

This is logging the following in my console window.

-[KitabooBookShelf download:] the url is http://172.18.11.162:8080/DRM_15April/ReceiptDownload
(1) -[KitabooBookShelf download:] size of DATA 364
(1) -[KitabooBookShelf download:] return strind is <html><head><title>JBossWeb/2.0.1.GA - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>java.io.StreamCorruptedException: invalid stream header: 3C3F786D
    java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:782)
    java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
    com.hurix.drm.servlet.ReceiptDownload.doPost(ReceiptDownload.java:40)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    com.hurix.drm.common.filter.SessionFilter.doFilter(SessionFilter.java:75)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
</pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the JBossWeb/2.0.1.GA logs.</u></p><HR size="1" noshade="noshade"><h3>JBossWeb/2.0.1.GA</h3></body></html>

can anyone suggest me what could be going wrong at my application side.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巨坚强 2024-11-16 08:25:39

您尝试使用 ObjectInputStream 读取 XML 数据,但作为 javadoc 说:

ObjectInputStream 反序列化之前使用 ObjectOutputStream 写入的原始数据和对象。

所以实际上客户端没有问题,但服务器端有问题。

You trying to read an XML data with an ObjectInputStream, but as the javadoc says:

An ObjectInputStream deserializes primitive data and objects previously written using an ObjectOutputStream.

So actually there is nothing wrong on client side, but on server side.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文