在表单提交方案中,表单将发布到"/ submit".我想在成功时将用户重定向到"/ sucess",并将一些消息传递给新网址的模板.如何在Django中执行此操作?render_to_response不进行重定向,HttpResponseRedirect不进行模板渲染.
我有一个HTTP响应
HTTP/1.0 200 OK\r\n\r\n
<!DOCTYPE html>...
Run Code Online (Sandbox Code Playgroud)
Firefox和Chrome似乎都很好理解它并显示HTML内容 - 但Safari和Opera只是以纯文本显示所有内容.添加"内容类型"字段会使所有浏览器的内容混乱.
有什么收获?
我不会发布完整的代码,因为有很多与该问题无关的任意编程逻辑,但是,发生的事情是这样的:
我创建一个套接字,然后发生所有相关的套接字操作 - 这一切都像魔术一样,然后经过所有处理我.send('响应在这里')并且出于某种原因它只在Firefox和Chrome上显示.
响应字符串如下所示:
'''
HTTP/1.1 200 OK\r\n
<!DOCTYPE html>
...
...
</html>
'''
Run Code Online (Sandbox Code Playgroud)
这就是我所看到的:http: //cl.ly/0y0U1s0G3X2v1C11282S
我正在尝试让Django的HttpResponse返回二进制数据,但没有成功。我已经尝试了一段时间的不同方法,但没有成功。
只要二进制数据值不在ASCII字符范围(小于0-255)的范围内,就可以将字符串编码为ASCII。使用latin-1进行编码时也发生了同样的情况。
创建字节字符串效果很好,但是如果包含某些值,则创建失败,例如,如果我在数据中包含以下字节:“ \ xf6 \ x52”,结果将得到不同的字节。由于某种原因,当我尝试查看结果响应时,第一个字节\ xf6被转换为0xfffd。
我希望获得一些反馈并为此提供帮助。
非常感谢!
-一种-
我正在开发一个 android 应用程序,其中 android 移动客户端通过 Flask REST API 与服务器通信。特定移动设备间歇性地从服务器接收 400 响应,用于 POST 端点之一。
以下是相关的服务器端代码:
def post(self):
app.logger.info("Request :" + request.url)
if request.headers['Content-Type'] == "application/json":
tok = str(request.json['tok'])
user_id = str(request.json['user_id'])
contact = str(request.json['contact'])
.
.
.
else:
response = jsonify({"message": "Unsupported Media Type"})
response.status_code = 415
return response
Run Code Online (Sandbox Code Playgroud)
一旦在 if 条件中访问请求 json 对象,就会返回响应 400。
以下是用于对 json 对象进行编码并执行 post 请求的 android java 代码:
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters,Constants.HTTP_CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpParameters, Constants.HTTP_SOCKET_TIMEOUT);
HttpClient client = new DefaultHttpClient(httpParameters);
URL url = null;
URI …Run Code Online (Sandbox Code Playgroud) 我正在尝试在HTTP响应中发送一些在Windows 1252中编码的数据(它是一个CSV文件),但在某些地方,它会被重新编码为UTF-8(无BOM).如何确保数据保持正确的编码?
var sb = new StringBuilder();
// Build the file from windows-1252 strings in the sb...
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", string.Format("filename=\"{0}\".csv", fileName));
HttpContext.Current.Response.ContentType = "text/csv;charset=windows-1252";
HttpContext.Current.Response.Charset = "windows-1252";
HttpContext.Current.Response.Write(sb.ToString());
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
Run Code Online (Sandbox Code Playgroud) API链接: http://www.familybuds.com/storegrunt-new/api_home/validate_step_one/platform/1
POST 参数:store_name = "abc"代码在 GoDaddy 服务器上
这个 api 一直工作到 7 月 25 日,但突然从 26 号早上开始在 Android APP 上停止工作。相同的 api 在 iPhone APP 上运行良好。
安卓代码:
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 10000);
HttpConnectionParams.setSoTimeout(httpParameters, 10000+12000);
DefaultHttpClient client = new DefaultHttpClient(httpParameters);
HttpPost httppost = new HttpPost(url);
HttpResponse response;
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
client.addRequestInterceptor(new HttpRequestInterceptor() {
@Override
public void process(HttpRequest request, HttpContext context)
throws HttpException, IOException {
// TODO Auto-generated method stub
if (!request.containsHeader("Accept-Encoding")) {
request.addHeader("Accept-Encoding", "gzip");
}
}
});
client.addResponseInterceptor(new HttpResponseInterceptor() …Run Code Online (Sandbox Code Playgroud) 我正在处理scrapy中的响应并继续收到此消息.
我只给出了发生错误的片段.我正在尝试浏览不同的网页,并且需要获取该特定网页中的#个页面.所以我创建了一个响应对象,我得到了下一个按钮的href,但继续得到AttributeError: 'Response' object has no attribute 'body_as_unicode'
代码使用.
from scrapy.spiders import Spider
from scrapy.selector import Selector
from scrapy.http import Request
from scrapingtest.items import ScrapingTestingItem
from collections import OrderedDict
import json
from scrapy.selector.lxmlsel import HtmlXPathSelector
import csv
import scrapy
from scrapy.http import Response
class scrapingtestspider(Spider):
name = "scrapytesting"
allowed_domains = ["tripadvisor.in"]
# base_uri = ["tripadvisor.in"]
def start_requests(self):
site_array=["http://www.tripadvisor.in/Hotel_Review-g3581633-d2290190-Reviews-Corbett_Treetop_Riverview-Marchula_Jim_Corbett_National_Park_Uttarakhand.html"
"http://www.tripadvisor.in/Hotel_Review-g297600-d8029162-Reviews-Daman_Casa_Tesoro-Daman_Daman_and_Diu.html",
"http://www.tripadvisor.in/Hotel_Review-g304557-d2519662-Reviews-Darjeeling_Khushalaya_Sterling_Holidays_Resort-Darjeeling_West_Bengal.html",
"http://www.tripadvisor.in/Hotel_Review-g319724-d3795261-Reviews-Dharamshala_The_Sanctuary_A_Sterling_Holidays_Resort-Dharamsala_Himachal_Pradesh.html",
"http://www.tripadvisor.in/Hotel_Review-g1544623-d8029274-Reviews-Dindi_By_The_Godavari-Nalgonda_Andhra_Pradesh.html"]
for i in range(len(site_array)):
response = Response(url=site_array[i])
sites = Selector(response).xpath('//a[contains(text(), "Next")]/@href').extract()
# sites = response.selector.xpath('//a[contains(text(), "Next")]/@href').extract()
for …Run Code Online (Sandbox Code Playgroud) 我有一个程序,它结合了多个 http 响应并写入文件上的相应搜索位置。我目前正在这样做
client := new(http.Client)
req, _ := http.NewRequest("GET", os.Args[1], nil)
resp, _ := client.Do(req)
defer resp.Close()
reader, _ := ioutil.ReadAll(resp.Body) //Reads the entire response to memory
//Some func that gets the seek value someval
fs.Seek(int64(someval), 0)
fs.Write(reader)
Run Code Online (Sandbox Code Playgroud)
这有时会导致大量内存使用,因为ioutil.ReadAll.
我想bytes.Buffer作为
buf := new(bytes.Buffer)
offset, _ := buf.ReadFrom(resp.Body) //Still reads the entire response to memory.
fs.Write(buf.Bytes())
Run Code Online (Sandbox Code Playgroud)
但还是一样。
我的意图是使用缓冲写入文件,然后再次寻找偏移量,并再次继续写入直到收到流的结尾(从而从 buf.ReadFrom 中捕获偏移值)。但它也将所有内容保存在内存中并立即写入。
将类似的流直接写入磁盘而不将整个内容保留在缓冲区中的最佳方法是什么?
一个理解的例子将不胜感激。
谢谢你。
使用CakePHP 3.4,PHP 7.0.
我正在尝试使用一个非常简单的控制器方法来输出一些JSON.它输出"无法修改标题...".
public function test() {
$this->autoRender = false;
echo json_encode(['method' => __METHOD__, 'class' => get_called_class()]);
}
Run Code Online (Sandbox Code Playgroud)
浏览器输出
{"method":"App\\Controller\\SomeController::test", "class":"App\\Controller\\SomeController"}
Warning (512): Unable to emit headers. Headers sent in file=...
Warning (2): Cannot modify header information - headers already sent by (output started at ...)
Warning (2): Cannot modify header information - headers already sent by (output started at ...)
Run Code Online (Sandbox Code Playgroud)
我完全理解为什么PHP抱怨这个.问题是为什么CakePHP会抱怨我该怎么办?
应该注意的是,CakePHP 2.x允许这样做.
我一直在为这个问题绞尽脑汁。django中是否有一种方法可以从单个HttpResponse提供多个文件?
我有一种情况,我正在遍历json列表,并希望以管理员视图的形式将所有这些返回为文件。
class CompanyAdmin(admin.ModelAdmin):
form = CompanyAdminForm
actions = ['export_company_setup']
def export_company_setup(self, request, queryset):
update_count = 0
error_count = 0
company_json_list = []
response_file_list = []
for pb in queryset.all():
try:
# get_company_json_data takes id and returns json for the company.
company_json_list.append(get_company_json_data(pb.pk))
update_count += 1
except:
error_count += 1
# TODO: Get multiple json files from here.
for company in company_json_list:
response = HttpResponse(json.dumps(company), content_type="application/json")
response['Content-Disposition'] = 'attachment; filename=%s.json' % company['name']
return response
#self.message_user(request,("%s company setup extracted and %s company …Run Code Online (Sandbox Code Playgroud) httpresponse ×10
python ×4
django ×3
http ×3
android ×2
json ×2
api ×1
binary ×1
c# ×1
cakephp ×1
cakephp-3.4 ×1
cakephp-3.x ×1
flask ×1
go ×1
io ×1
php ×1
redirect ×1
rest ×1
scrapy ×1
string ×1
web-scraping ×1
windows-1252 ×1
zipfile ×1