Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >所有对Restful webservice的post请求都提供Http 415。

所有对Restful webservice的post请求都提供Http 415。
EN

Stack Overflow用户
提问于 2018-10-10 03:48:24
回答 1查看 274关注 0票数 1

查看响应和请求头

我有一个(Jersey 2),它使用Apache作为代理在Tomcat 9上运行。我使用JSON作为协议(Jackson)在客户机和服务器之间交换数据。请求的效果很好。它们以json格式返回数据。

但是邮政请求已经停止运作了。它们以json格式接收数据。在到达服务器方法之前,请求失败。我的Webservice之前很好。我认为改变是因为把Tomcat抛在了Apache后面。但我不确定。我使用mod_proxy,第一张图片显示客户端和网络响应。我可以看到响应不包含JSON作为内容类型,但是请求是请求(据我理解)。

如果我对此理解正确,如何获得接受JSON的响应?帮助是真正的感激,因为我已经与此斗争了很长时间。我在网上发现的任何东西都没有正确的答案。

我想这是配置文件中的错误。

web.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">

    <display-name>PlanYourProject</display-name>

    <!-- Define ServletContainer of Jersey -->
    <servlet>
        <servlet-name>PlanYourProject</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <!-- Define the ResourceConfig class -->
        <init-param>
            <!-- <param-name>javax.ws.rs.Application</param-name>
            <param-value>App.App</param-value> -->
            <param-name>jersey.config.server.provider.packages</param-name>
                 <param-value>Project</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map all the URLs to the Jersey ServletContainer -->
    <servlet-mapping>
        <servlet-name>PlanYourProject</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

pom.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jwt.rest</groupId>
    <artifactId>PlanYourProject</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>PlanYourProject Maven Webapp</name>
    <url>http://maven.apache.org</url>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-server -->
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>2.27</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers/jersey-container-servlet -->
        <dependency> <!-- FOR SERVLET 3.x -->
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.27</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-client</artifactId>
            <version>2.27</version>
        </dependency>

        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-hk2</artifactId>
            <version>2.27</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>2.1.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.6.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.paypal.sdk/rest-api-sdk -->
        <dependency>
            <groupId>com.paypal.sdk</groupId>
            <artifactId>rest-api-sdk</artifactId>
            <version>1.14.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.jasypt/jasypt -->
        <dependency>
            <groupId>org.jasypt</groupId>
            <artifactId>jasypt</artifactId>
            <version>1.9.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.wisdom-framework/mysql-connector-java -->
        <dependency>
            <groupId>org.wisdom-framework</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34_1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.11</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-text -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-text</artifactId>
            <version>1.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxrs -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>3.2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.sun.mail/smtp -->
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>smtp</artifactId>
            <version>1.6.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-juli -->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-juli</artifactId>
            <version>8.0.30</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-util -->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-util</artifactId>
            <version>8.0.30</version>
        </dependency>


    </dependencies>
    <properties>
        <!-- Dette er Java versjon -->
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
    </properties>
    <build>
        <finalName>PlanYourProject</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

server.xml (part of):

 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

这里有一些示例代码,但问题是针对我的webservice中的所有Post请求。这是来自客户端的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
createPayment(obj){
        var url = window.location.origin + "/PlanYourProject/rest/CustomerAdministration/create_payment";
        var ajaxRequest = new UI_AjaxRequest(); 
        var id = obj.button_id;
        var ids = id.split('_');
        var value = obj.button_value;
        var values = value.split(' ');
        var price = new Object();
        price.dbname = sessionStorage.database_name;
        price.type = ids[3];
        price.period = ids[4];
        price.price = values[1];
        price.currency = values[2];
        price.language = sessionStorage.responsible_language;
        id = id.replace("input","info");
        var element = document.getElementById(id);
        price.typetext = element.value;
        ajaxRequest.startPostRequest(url, price, obj.paymentCreated, obj.paymentFailed);
}
startPostRequest(argUrl, dataObj, argSuccessFunction, argFailureFunction) {
            console.log(JSON.stringify(dataObj));
            var req = new Ajax.Request(argUrl,{
                method :      'POST',
                parameters :  JSON.stringify(dataObj),
                contentType : 'application/json',
                dataType :    'json',
                onSuccess :   argSuccessFunction,
                onFailure :   argFailureFunction
            });

这是来自服务器的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@POST
@Path("/create_payment")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String createPayment(Price price,@Context HttpServletRequest request) throws IOException  {
    String redirectUrlJson;
    String redirectUrl;
    try {
        ObjectMapper om = new ObjectMapper();
        redirectUrl = customerDao.CreatePayment(price, request);
        redirectUrlJson = om.writeValueAsString(redirectUrl);

    } catch (Exception ex) {
        redirectUrlJson = "{\"result\" : \"" + ex.getMessage() + "\" }";    
    }
    return redirectUrlJson;
}

/etc/apache2/apache.conf:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# This is the main Apache server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
#
#
# Summary of how the Apache 2 configuration works in Debian:
# The Apache 2 web server configuration in Debian is quite different to
# upstream's suggested way to configure the web server. This is because Debian's
# default Apache2 installation attempts to make adding and removing modules,
# virtual hosts, and extra configuration directives as flexible as possible, in
# order to make automating the changes and administering the server as easy as
# possible.

# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
#   /etc/apache2/
#   |-- apache2.conf
#   |   `--  ports.conf
#   |-- mods-enabled
#   |   |-- *.load
#   |   `-- *.conf
#   |-- conf-enabled
#   |   `-- *.conf
#   `-- sites-enabled
#       `-- *.conf
#
#
# * apache2.conf is the main configuration file (this file). It puts the pieces
#   together by including all remaining configuration files when starting up the
#   web server.
#
# * ports.conf is always included from the main configuration file. It is
#   supposed to determine listening ports for incoming connections which can be
#   customized anytime.
#
# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
#   directories contain particular configuration snippets which manage modules,
#   global configuration fragments, or virtual host configurations,
#   respectively.
#
#   They are activated by symlinking available configuration files from their
#   respective *-available/ counterparts. These should be managed by using our
#   helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
#   their respective man pages for detailed information.
#
# * The binary is called apache2. Due to the use of environment variables, in
#   the default configuration, apache2 needs to be started/stopped with
#   /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
#   work with the default configuration.


# Global configuration
#

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE!  If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the Mutex documentation (available
# at <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
#ServerRoot "/etc/apache2"

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
#Mutex file:${APACHE_LOCK_DIR} default

#
# The directory where shm and other runtime files will be stored.
#

DefaultRuntimeDir ${APACHE_RUN_DIR}

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5


# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog ${APACHE_LOG_DIR}/error.log

#
# LogLevel: Control the severity of messages logged to the error_log.
# Available values: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the log level for particular modules, e.g.
# "LogLevel info ssl:warn"
#
LogLevel warn

#
# Setter Response og Request headers til å godta JSON. 
# Brukes av mod_headers. 
#
# Enables :  
#           a2enmod headers
#           apache2 -k graceful
#
Header set Content-Type "application/json; charset=UTF-8"  
# RequestHeader set Content-Type "application/json; charset=UTF-8"

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

# Include list of ports to listen on
Include ports.conf


# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>




# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#
AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>


#
# The following directives define some format nicknames for use with
# a CustomLog directive.
#
# These deviate from the Common Log Format definitions in that they use %O
# (the actual bytes sent including headers) instead of %b (the size of the
# requested file), because the latter makes it impossible to detect partial
# requests.
#
# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended.
# Use mod_remoteip instead.
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

/etc/apache2/mods-enabled/proxy.conf:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<IfModule mod_proxy.c>

    # If you want to use apache2 as a forward proxy, uncomment the
    # 'ProxyRequests On' line and the <Proxy *> block below.
    # WARNING: Be careful to restrict access inside the <Proxy *> block.
    # Open proxy servers are dangerous both to your network and to the
    # Internet at large.
    #
    # If you only want to use apache2 as a reverse proxy/gateway in
    # front of some web application server, you DON'T need
    # 'ProxyRequests On'.

    #ProxyRequests On
    #<Proxy *>
    #   AddDefaultCharset off
    #   Require all denied
    #   #Require local
    #</Proxy>

    # Enable/disable the handling of HTTP/1.1 "Via:" headers.
    # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
    # Set to one of: Off | On | Full | Block
    #ProxyVia Off

</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

来自apache的日志文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Wed Oct 10 00:09:57.556556 2018] [ssl:warn] [pid 833:tid 140467586079680] AH01909: 127.0.1.1:443:0 server certificate does NOT include an ID which matches the server name
[Wed Oct 10 00:09:57.556678 2018] [mpm_event:notice] [pid 833:tid 140467586079680] AH00489: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.0g configured -- resuming normal operations
[Wed Oct 10 00:09:57.556685 2018] [core:notice] [pid 833:tid 140467586079680] AH00094: Command line: '/usr/sbin/apache2'
[Wed Oct 10 22:02:07.007600 2018] [ssl:warn] [pid 782:tid 139711419993024] AH01909: 127.0.1.1:443:0 server certificate does NOT include an ID which matches the server name
[Wed Oct 10 22:02:07.042839 2018] [ssl:warn] [pid 898:tid 139711419993024] AH01909: 127.0.1.1:443:0 server certificate does NOT include an ID which matches the server name
[Wed Oct 10 22:02:07.044021 2018] [mpm_event:notice] [pid 898:tid 139711419993024] AH00489: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.0g configured -- resuming normal operations
[Wed Oct 10 22:02:07.044050 2018] [core:notice] [pid 898:tid 139711419993024] AH00094: Command line: '/usr/sbin/apache2'
[Thu Oct 11 00:10:26.012155 2018] [mpm_event:notice] [pid 898:tid 139711419993024] AH00493: SIGUSR1 received.  Doing graceful restart
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-11 21:00:51

你错过了一个JSON提供者。您有一些Jackson依赖项,但它们不是JAX提供程序。您需要的是下面的依赖项

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.27</version>
</dependency>

这应该能起作用。这将允许将传入的JSON转换为资源方法参数中的Price

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52739567

复制
相关文章
如何使用Go365对Office365用户进行渗透
Go365这款工具旨在帮助广大研究人员针对使用了Office365(现在/即将推出Microsoft365)的组织和用户执行用户枚举和密码爆破攻击。Go365使用了login.microsoftonline.com上的惟一一个SOAP API节点,而login.microsoftonline.com则是很多其他大部分工具都不会选择使用的。当要求输入一个电子邮件地址和密码时,这个终端节点会响应一个Azure AD认证和授权代码,这个代码接下来会交由Go365处理,处理的结果会打印至屏幕或输出到文件。
FB客服
2021/01/08
1.3K0
如何使用Go365对Office365用户进行渗透
Microsoft 365 for Mac(原Office 365)
Microsoft 365 for Mac(原名Office 365)是微软公司推出的一款办公软件套装,它包含了常用的办公应用程序,如Word、Excel、PowerPoint、OneNote等。
Mac小小心
2023/03/13
1K0
Microsoft 365 for Mac(原Office 365)
Microsoft 365 for Mac(原Office 365)
还在寻找office 365 for mac吗?现在小编为大家带来了office 365 for mac,您可以在这里创作、沟通、协作并完成重要工作。
用户10121095
2022/10/30
5120
Python 使用office365邮箱
最近遇到一个需求,需要使用office365邮箱发送邮件,使用SSL发送会失败,必须使用TLS加密协议才能发送成功。
py3study
2020/06/11
1.8K0
如何使用永久白嫖office365_mybatis 注解
①https://download.csdn.net/download/qq_25881443/85337907 ②解压IntelliJ IDEA 2022.1\plugins重启idea
全栈程序员站长
2022/11/08
6850
如何使用永久白嫖office365_mybatis 注解
Microsoft 365 for Mac(原Office 365)
Microsoft 365 for Mac(原Office 365)是Microsoft推出的一款办公软件套件,适用于Mac操作系统。它包含了常见的办公软件,如Word、Excel、PowerPoint等,同时还提供了一些附加功能,例如OneDrive云存储、Outlook邮件客户端、Teams办公协作工具等。
对影三人
2023/03/14
1.7K0
Microsoft 365 for Mac(原Office 365)
原Office365:Microsoft 365 16.71
哪里有office 365 for mac激活工具吗?Microsoft 365 for Mac原Office 365,包含Word、Excel、PowerPoint 和 Outlook应用程序,协作办公的最佳首选。
用户10121095
2023/03/15
1.3K0
Office 365 离线安装
          有个O365 的project需要安装Office365 Office,但是客户机不能连接网络,so要实现离线安装了。之前一直安装都是提示安装错误,类似错误代码Error Code 0-1008 (0),之后发现是没有指定down.xml,Office下载不完整造成了这个错误。
月缺
2020/01/15
2.6K0
Office 365 离线安装
Microsoft Office 365 for Mac
Office 365 Mac版是专为Mac用户定制的Mac电脑办公软件,无论个人还是企业,都可以在这里创作、沟通、协作并完成重要工作。Office 365 Mac版功能非常的全面,你可以使用它帮助你执行各种办公的管理。
快乐的小丸子
2022/11/17
6560
彻底卸载Office 2016 或 Office 365
在某些异常情况下,Office 2016 或 Office 365 可能无法通过添加删除程序进行卸载,各位可以通过以下方法手动卸载。教程来源于微软,遇到类似问题的朋友不妨试试。
reizhi
2022/09/26
5.3K0
office365安装激活
Office Tool Plus 基于 Office 部署工具 (ODT) 打造,可以很轻松地部署 Office。无论你是个体还是团队,Office Tool Plus 都是您的 Office 小助手
王忘杰
2022/09/22
2.4K1
office365安装激活
Windows 商店应用中使用 Office 365 API Tools
本篇我们介绍一个API 工具,用于在 Windows Store App 中使用 Office 365 API。 首先来说一下本文的背景: 使用 SharePoint 做过开发的同学们应该都知道,SharePoint 有一套客户端对象模型(Client Object Model)用于读取和操作列表和文档库的数据。这个模型支持的应用程序类型包括ASP.NET、WPF、Silverlight和WP等,但是 Windows Store App 不在支持行列中(这一点我一直不太理解)。。。这样的话,我们就没办法在
Shao Meng
2018/04/28
3.5K0
Windows 商店应用中使用 Office 365 API Tools
免费获得Office365
Office365开发版E5是为开发人员提供的,是微软的官方活动,申请Office 365开发者计划可以获得为期3个月的免费Office365 E5。而E5计划就包含了25个用于所有Office 365 应用的许可证。
云计算小黑
2022/12/28
2K0
免费获得Office365
office2016、office365和office其它版本JH[通俗易懂]
Win10系统中会预安装Office,但是没有给JH,网上给了各种解决方案,如JH码、KMS等方式JH。
全栈程序员站长
2022/09/09
2.3K0
office2016、office365和office其它版本JH[通俗易懂]
Microsoft Office 365 Pro Plus产品密钥 office365永久激活密钥key分享
有不少用户在寻找office365产品密钥,office365是一种订阅版软件,一般是每个月或每年支付一定的费用在线订阅购买激活码并安装激活。有些用户可以下载到离线版office365,安装后提示要激活的产品,有用户打算使用秘钥破解,下面小编跟大家整理分享office365激活序列号key。
用户9208731
2023/02/24
21K0
Microsoft Office 365 Pro Plus产品密钥 office365永久激活密钥key分享
免费获得Office365Office E5
Office365开发版E5是为开发人员提供的,是微软的官方活动,申请Office 365开发者计划可以获得为期3个月的免费Office365 E5。而E5计划就包含了25个用于所有Office 365 应用的许可证。
星泽V社
2022/04/29
1.8K0
免费获得Office365Office E5
超详细!安装与激活Office 2010 2012 2020 365
Office Tool Plus是一款好用的Office部署软件,可以帮助我们快速部署Microsoft Office软件,本文将使用Office Tool Plus来演示如何安装激活Office 365。
叼同学
2021/08/09
7.4K0
超详细!安装与激活Office 2010 2012 2020 365
办公套件Office365最新中文版,Office365软件安装激活教程下载
Office软件是一款非常实用的办公软件,它包含了多个工具,比如Word、Excel、PowerPoint等等。这些工具可以帮助你处理各种办公任务,提高工作效率。
用户10413399
2023/03/20
1.9K0
办公套件Office365最新中文版,Office365软件安装激活教程下载
微软365与Office 2019相比有什么不同
哪个更有价值:Microsoft 365 或 Office 2019?在这里,它们并排比较,看看哪一个更适合你。
office小助手
2022/04/27
3.4K0
微软365与Office 2019相比有什么不同
点击加载更多

相似问题

对javascript中对象的对象数组进行排序

60

对php中的对象数组进行排序

30

对groovy中的对象数组进行排序

272

对numpy中的对象数组进行排序?

12

对Chrome中的对象数组进行排序

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文