我有一个字符串,我在服务器上Gzip并使用WebClient类下载到客户端.当我尝试解压缩它时,我收到错误信息,表明Magic Number丢失了.我已经尝试过GZipStream类和解决这个问题的ICSharpLib方法,所以我很茫然.
如果我省略通过WebClient下载的步骤(使用将数据作为byte []返回的DownloadData),压缩/解压缩工作,所以我只能假设数据被截断或损坏有些问题,但是因为它是压缩数据,我不知道如何调试它.
这是代码片段,似乎是有问题的部分:
byte[] response
try {
response = client.DownloadData(Constants.GetSetting("SyncServer"));
} catch {
MessageBox.Show("There was a problem synchronizing the data. Please try verify the supplied credentials or try again later.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
int rows = SQLiteAPI.ImportStatHistoryXML(CurrentUser.User, myCampus, Convert.ToBase64String(response));
public static int ImportStatHistoryXML(Person tempPerson, Campus tempCampus, string xmlFile) {
byte[] encryptedFile = Convert.FromBase64String(xmlFile);
MemoryStream memStream = new MemoryStream(encryptedFile);
memStream.ReadByte();
GZipInputStream stream = new GZipInputStream(memStream);
MemoryStream memory = new MemoryStream();
byte[] writeData = new byte[4096];
int size; …Run Code Online (Sandbox Code Playgroud) 我有一个小的 servlet 返回几个 html 页面。其中一个页面的内容非常复杂,但每隔一小时左右就会发生变化。但是,它经常被用户请求。我想避免在每次请求时重新计算它。
我想知道是否可以在内存(字节数组)中准备一个 gzip 版本,并将其设置为对此页面的所有 HTML 请求的响应。我还会每小时重新计算一个新的缓存 gzip 版本。
如果这是可能的,我该怎么做?我应该使用过滤器吗?对于这个问题,我们可以假设所有浏览器都可以处理 gzip 格式的响应。我正在寻找一个代码示例。
我正在使用基本Response.StatusCode设置将状态代码设置为9999.此页面通过AJAX调用进行调用,检查状态代码readyState = 4并使用设置的消息在9999 上弹出警报Response.StatusDescription.我得到的只是readyState = 4和statusCode = 200.我可以提供代码,如果需要,但它不是修剪,所以如果代码需要/要求我将削减它.感谢任何帮助.用C#ASP.NET和Javascript编写.
更新 目的:在将用户添加到SQL表时,我起诉状态代码9999以表示"用户已存在"错误.这是我能找到的唯一方法,让AJAX调用知道何时发生此错误.
我在我的java servlet中编写了如下JSON响应,其中JObject是创建的JSON对象
response.setContentType("application/json; charset=UTF-8");
PrintWriter printout = response.getWriter();
printout.print(JObject);
printout.flush();
Run Code Online (Sandbox Code Playgroud)
但它在接收方以文本/普通方式收到
[Server: Apache-Coyote/1.1, ETag: W/"XXXXXXXXXX", Last-Modified: Tue, 04 Jun 2013 10:42:31 GMT, Content-Type: text/plain, Content-Length: 2573, Date: Tue, 04 Jun 2013 10:44:01 GMT]
Run Code Online (Sandbox Code Playgroud)
如何获得确切的JSON响应?如果我JSON在同一台机器上编写响应,即可获取JSON数据.但是如果我JSON在另一台服务器上编写响应,它会返回text/plain.
这是JObject:
JSONObject JObject = new JSONObject();
JObject.put("Response", "1");
JObject.put("Message", "Client unauthorized");
Run Code Online (Sandbox Code Playgroud) 在我的 servlet 我有这个代码:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
Utils.CheckSession(request,response);
String op = request.getParameter("op");
int DaysToAdd = request.getParameter("daysToAdd") != null ? Integer.valueOf(request.getParameter("daysToAdd")) : 0;
ArrayList<Giorno> giorni = new ArrayList<Giorno>();
/*HERE I FILL ArrayList giorni and calculate other variables*/
if ("cal".equals(op))
{
request.setAttribute("giorni", giorni);
request.setAttribute("daysToAdd", DaysToAdd);
request.getRequestDispatcher("GestioneCalendario.jsp").forward(request, response);
}
else if("utente".equals(op))
{
// ricavare abbonamento dell'utente
String idu = (String) request.getAttribute("idu");
Abbonamento a = null;
int iDa = Utils.getIdAbbonamentoAttivoUtente(idu);
a = Utils.getAbbonamentoFromId(iDa); …Run Code Online (Sandbox Code Playgroud) 我正在运行 django 应用程序并收到以下错误:
TypeError at /login
render_to_string() got an unexpected keyword argument 'status'
Request Method: GET
Request URL: http://10.107.44.122:8002/login?next=/
Django Version: 1.7.1
Exception Type: TypeError
Exception Value: render_to_string() got an unexpected keyword argument 'status'
Exception Location: /usr/local/lib/python2.7/dist-packages/django/shortcuts.py in render_to_response, line 23
Python Executable: /usr/bin/python
Python Version: 2.7.6
Run Code Online (Sandbox Code Playgroud)
我能想到错误可能来自哪里的唯一地方是:
render_to_response('login.html', context, status=status, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
status应该是预期的关键字 for render_to_response,那么为什么会出现此错误?
我想回到我的Rest Client最简单的答案.只有:
什么是最简单的方法?
我习惯用ResponseEntity这种方式使用对象:
return new ResponseEntity<String>("Custom string answer", HttpStatus.CREATED);,
但不幸的是,我不能简单地在构造函数中传递http头.
我必须创建HttpHeaders对象,并添加我的自定义标头,如下所示:
MultiValueMap<String, String> headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN_VALUE);
return new ResponseEntity<String>("Custom string answer", headers, HttpStatus.CREATED);
Run Code Online (Sandbox Code Playgroud)
但我正在寻找更简单的东西.可以适合一行代码的东西.
有人可以帮忙吗?
我最近在我的android工作室中添加了fabric插件,但我没有在该插件上找到twitter登录选项.当我在谷歌搜索然后我发现一个 问题,织物最近删除了Twitter登录工具包.所以我使用twitter官方文档集成了twitterkit .我根据twitter开发者网站集成了twitterkit和实现代码,但我面临着问题.
这是错误日志:
E/Twitter: Failed to get app auth token
com.twitter.sdk.android.core.TwitterApiException: HTTP request failed, Status: 403
at com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6209)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Authorization completed with an error
com.twitter.sdk.android.core.TwitterAuthException: Authorize failed.
at com.twitter.sdk.android.core.identity.AuthHandler.handleOnActivityResult(AuthHandler.java:98)
at com.twitter.sdk.android.core.identity.TwitterAuthClient.onActivityResult(TwitterAuthClient.java:161)
at com.twitter.sdk.android.core.identity.TwitterLoginButton.onActivityResult(TwitterLoginButton.java:131)
at in.crazyfingers.cyny.social_login.ActivitySocialSignIn.onActivityResult(ActivitySocialSignIn.java:305)
at android.app.Activity.dispatchActivityResult(Activity.java:7007)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4173)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4220)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1559)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6209)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) …Run Code Online (Sandbox Code Playgroud) def index(request):
review = Review.objects.all()
output = "\n".join([each_review.review_text for each_review in review])
return HttpResponse(output)
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
"This book 1 is very great This book 2 is very great This book 3 is very great This book 4 is very great This book 5 is very great This something is very great"
但它不打印它们之间的新线.如何才能实现这一目标HttpResponse?
我想返回204 no contenthttp状态代码。尽管我想添加一个自定义错误消息,其中提供了详细说明为何不存在任何内容的细节。
问题:我正在使用spring-mvc,并且在返回HttpStatus.NO_CONTENT类型时,响应主体始终被删除,并且对于客户端而言是空的!
@RestControllerAdvice
public class ExeptionHandler {
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.NO_CONTENT)
public Object handler(HttpServletRequest req, Exception e) {
return new ResponseEntity<String>(e.getMessage(), HttpStatus.NO_CONTENT);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将类型更改为例如,HttpStatus.NOT_FOUND则错误消息将显示为响应正文。
如何使用204达到同样的效果?
httpresponse ×10
java ×4
servlets ×3
c# ×2
django ×2
spring ×2
ajax ×1
android ×1
caching ×1
compression ×1
gzip ×1
httprequest ×1
javascript ×1
jave ×1
json ×1
python-2.7 ×1
rest ×1
spring-mvc ×1
twitter ×1
webclient ×1
zip ×1